« XAML を使用したグラフ作成 | トップページ | office 2010 の設定変更(2011/10/27 更新) »

2011年7月 1日 (金)

プラットフォーム毎に参照先を変える

開発機を Windows7 に変更したら 32bit 版DLLで問題が発生

1.とある プログラム を 32bit でコンパイル(32bit版DLL)
2.1で作成されたDLLを参照設定で読み込む
3.読み込んだプロジェクトを 64bit でコンパイル
4.実行すると「間違ったフォーマットのプログラムを読み込もうとしました。」とか怒られる

※ 32bit 版のアプリから 64bit版 DLLを参照した場合も同様

全て同じプロジェクトなら構成を変えれば良いのですが、DLLでしか提供されない場合、
コンパイルの度に参照の追加と削除をしなければならないのか?

そんなの面倒なので、プラットフォームを変更するたけで参照先を変えたい・・・
調べてみたらドンピシャな回答がありました

その回答は・・・「*.csproj」を直接編集するw

参照の設定は、「*.csproj」ファイル の <ItemGroup> <Reference> タグで管理されているため、それを書き換えてやろうというのだ。

  • DLLの出力先が x86、x64 などプラットフォーム毎に異なる場合、 $(Platform) を使用することで動的に切り替えることができる
  • DLLの出力先が Debug、Release 毎に異なる場合、$(Configuration) を使用することで動的に切り替えることができる

<ItemGroup>
     <Reference Include="CtrlCmdCLI, Culture=neutral">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\..\$(Platform)\$(Configuration)\CtrlCmdCLI.dll</HintPath>
       <Private>False</Private>
    </Reference>

実践してみると、思った通りの動きになり今の所問題なく動作しています。

« XAML を使用したグラフ作成 | トップページ | office 2010 の設定変更(2011/10/27 更新) »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/153605/52093759

この記事へのトラックバック一覧です: プラットフォーム毎に参照先を変える:

« XAML を使用したグラフ作成 | トップページ | office 2010 の設定変更(2011/10/27 更新) »