使用するコンパイル定数に応じて、どのリソースをコンパイルするかを選択するにはどうすればよいですか?したがって、VAR1 = 0の場合、最終アセンブリにRESOURCE_Aを追加しません。.NETでの選択的なリソースのコンパイル?
私は周りを検索しましたが、これに関する情報は見つかりませんでした...間違ったキーワードを使用していると思います。
また、VS2005と2008の両方を私の仕事で使っています。主にVBですが、C#でも問題はありません。
使用するコンパイル定数に応じて、どのリソースをコンパイルするかを選択するにはどうすればよいですか?したがって、VAR1 = 0の場合、最終アセンブリにRESOURCE_Aを追加しません。.NETでの選択的なリソースのコンパイル?
私は周りを検索しましたが、これに関する情報は見つかりませんでした...間違ったキーワードを使用していると思います。
また、VS2005と2008の両方を私の仕事で使っています。主にVBですが、C#でも問題はありません。
コンパイル定数はコードにのみ影響します。両方のリソースをアセンブリに追加し、コンパイル定数に応じて適切なリソースを取得できます。
これを達成する他の方法はもちろんあります。定義した何らかの基準に基づいて、ビルド前のイベントで適切なリソースをコピーします。
あなたは、MSBuildの< >要素を選択して使用してこれを実現できます。
<Choose>
<When Condition=" '$(Configuration)'=='Debug' ">
<ItemGroup>
<EmbeddedResource Include="debug_resource.txt" />
</ItemGroup>
</When>
<When Condition=" '$(Configuration)'=='retail' ">
<ItemGroup>
<EmbeddedResource Include="retail_resource.txt" />
</ItemGroup>
</When>
</Choose>
...もちろん、あなたが$(構成)変数以外のものを使用することができます。ファイル/フォルダの存在を確認したり、別のタスクの出力を使用したり、別の変数を使用したりすることができます。
.NET上のリソースに対してコンパイル定数を定義することはできません。 また、すべてのリソースを追加することが常に必要なわけではありません。 A)最終アセンブリにサイズオーバーヘッドを追加します。 B)一部のバージョンのソフトウェアのアセンブリにコンパイルしたくないリソースが存在することがあります –