csprojファイル内で使用されるMSBuildプロパティのデフォルト値を調べる

6.png

前置き

.NET Coreと同じくらいの時期に登場したSDKスタイルと呼ばれるcsproj形式では、明示的に記述しなくても多くのMSBuildプロパティに初期値が設定されるようになっています。

ここでRelease ビルドの設定を少し変更した Release_Sandbox のようなビルド構成を作る場合を考えます。 Configurationプロパティ(ビルド構成)がDebugReleaseかによって設定される初期値が変わってきますが、独自のビルド構成ではこの条件に引っかかりません。

そのためRelease構成のバリエーションを作るためにはReleaseの場合に設定される初期値を調べて再現する必要が出てきます。

方法

MSBuildコマンドの-pp(-preprocess)を使って、ビルド時にcsprojにインポートされる全てのファイルが展開された結果を出力します。

次のようなコマンドを実行します。(MSBuildの部分はdotnet buildでもOK)

MSBuild NetAndroidApp.csproj -pp:_NetAndroidApp.csproj.xml

実行すると画像左のcsprojから右のファイルが出力されます。

20230307221754.jpg

ここから '$(Configuration)' == 'Release' の条件が含まれる部分を調べていけば良さそうです。

最適化や......

20230307222546.jpg

Assemblyのトリミング設定に影響している事が分かりますね。

20230307222703.jpg

おわり

という訳でXamarin.Androidプロジェクトを.NET 6+に移行する際に調べたメモでした。 Visual Studioで 「Release or Debug」 + 「MSBuildプロパティのセット」 の組み合わせをビルド構成のように扱えると便利になりそうですね。

お気軽にご依頼・ご相談ください

前へ

やわらかな印象のメッシュグラデーションをCSSで実装する方法

次へ

必須列を無視して SharePoint リストアイテムを更新する【Power Automate クラウドフロー】