私はVisual Studio 2015を使用してC#アプリケーションを作成しています。このアプリケーションは32ビットで実行される単一のビルドターゲットにアプリケーションをコンパイルすることを意味する "Any CPU"( "32ビット優先設定" 32ビット・オペレーティング・システムでは64ビット・モード、64ビット・オペレーティング・システムでは64ビット・モードです。Visual Studioのファイルを開発者のオペレーティングシステムのアーキテクチャに基づいて条件付きでコピーするにはどうすればよいですか?
このアプリケーションでは、特定のネイティブDLLを出力フォルダ(bin/Debugまたはbin/Releaseフォルダ)にコピーする必要があります。このDLLには別のx86およびx64バージョンがあり、開発者のオペレーティングシステムに応じて正しいフォルダを出力フォルダにコピーする必要があります。
これまでのところ、私は私の.csprojファイルに次のようなものを追加することにより、条件付きで出力フォルダにI できコピーファイルことを考え出した:だから私の質問は、私はどのように、ある
<ItemGroup Condition="MY CONDITION HERE">
<Content Include="MyNativeLib.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
「開発者のオペレーティングシステムはx86」または「... x64」に相当する条件を記述しますか?
(私はではありません。プラットフォームビルドターゲットに条件付きでファイルをコピーする方法を質問しています。私の場合は常に「任意のCPU」です。条件付きでファイルをコピーする方法を尋ねていますVisual Studioが実行されているOSアーキテクチャに応じて)。
ポストビルドイベントで正しく実行します。 –
@ AllanS.Hansenそれは私の最初の本能でした(私はすでにポストビルドを使って他のファイルをコピーしています)。条件付きでファイルをコピーすることについてのヒントを見つけることができなかった*ビルド後のイベントでは、OSアーキテクチャーには条件がありません。ビルド後のイベントで誰かにこのことをどうやって伝えることができれば、それは100%受け入れられるでしょう! –
これを見てください:http://stackoverflow.com/questions/3832552/conditionally-use-32-64-bit-reference-when-building-in-visual-studio – Alex