C# コードの条件付きコンパイルとターゲット フレームワークの最適化
C# では、条件付きコンパイルを使用して、ターゲット フレームワークに従ってコードを最適化できます。次の例を見てください:
#if NET40 using FooXX = Foo40; #elif NET35 using FooXX = Foo35; #else NET20 using FooXX = Foo20; #endif
この機能を使用するには、シンボルを定義する必要があります。 1 つの方法は、MSBuild を使用してそれらをプロジェクト構成に挿入することです:
/p:DefineConstants="NET40"
あるいは、プロジェクト ファイルに別のビルド構成を作成することは、より包括的な解決策です:
<PropertyGroup Condition="'$(Framework)' == 'NET20'"> <DefineConstants>NET20</DefineConstants> <OutputPath>bin$(Configuration)$(Framework)</OutputPath> </PropertyGroup>
さらに、AfterBuild ターゲットは、プロジェクトを別のバージョンに再コンパイルできます:
<Target Name="AfterBuild"> <MSBuild Condition="'$(Framework)' != 'NET20'" Projects="$(MSBuildProjectFile)" Properties="Framework=NET20" RunEachTargetSeparately="true" /> </Target>
このメソッドは、各ターゲット フレームワークが正しく定義されていることを保証し、特定のファイルや参照を条件付きで除外または含めることができます。
<Compile Condition="'$(Framework)' == 'NET20'" Include="SomeNet20SpecificClass.cs" /> <Reference Condition="'$(Framework)' == 'NET20'" Include="Some.Assembly"> <HintPath>..\Lib$(Framework)\Some.Assembly.dll</HintPath> </Reference>
条件付きコンパイルを効果的に実装することで、開発者はコードを最適化し、さまざまなフレームワークを活用して目的の機能を実現できます。
以上が条件付きコンパイルは、さまざまなフレームワーク ターゲットに合わせて C# コードをどのように最適化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。