条件付きコンパイルとフレームワーク ターゲティングのためのビルド構成とビルド後のアクションの活用
条件付きコンパイルを使用すると、開発者はターゲット フレームワークなどの特定の条件に基づいてコード ベースを適応させることができます。この場合の目標は、さまざまな .NET Framework バージョンに合わせてコードの一部を最適化することです。
効率的なアプローチは、ターゲット フレームワークごとに個別のビルド構成を使用することです。たとえば、.NET 2.0、3.5、および 4.0 の構成を作成します。
<code class="language-xml"><PropertyGroup Condition="'$(Framework)' == 'NET20'"> <DefineConstants>NET20</DefineConstants> <OutputPath>bin$(Configuration)$(Framework)</OutputPath> </PropertyGroup></code>
これらの構成では、デフォルトのターゲット フレームワークを定義します:
<code class="language-xml"><PropertyGroup Condition="'$(Framework)' == ''"> <Framework>NET35</Framework> </PropertyGroup></code>
次に、AfterBuild ターゲットを実装して、最初のビルド後に追加のバージョンをコンパイルします。
<code class="language-xml"><Target Name="AfterBuild"> <MSBuild Projects="$(MSBuildProjectFile)" Properties="Framework=NET20" RunEachTargetSeparately="true" Condition="'$(Framework)' != 'NET20'"/> </Target></code>
このステップにより、各ビルドに正しい条件定義が設定されるようになります。
さらに、ターゲット フレームワークに基づいてファイルを選択的に含めたり除外したりできます。
<code class="language-xml"><Compile Include="SomeNet20SpecificClass.cs" Condition="'$(Framework)' == 'NET20'"/></code>
<code class="language-xml"><Reference Include="Some.Assembly" Condition="'$(Framework)' == 'NET20'"> <HintPath>..\Lib$(Framework)\Some.Assembly.dll</HintPath> </Reference></code>
以上が条件付きコンパイルは、さまざまな .NET Framework バージョンに合わせてコードをどのように最適化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。