C#2.0時代のゲームプログラミング(40)

話が前後してしまうが、まずVS2005の構成のプロパティについて説明しておく。


基本的にVS2005は「特定の構成においてはあるdllを参照しない」ということが出来ない。VC++6のときですら「このファイルをビルドしない」という設定をcppファイルごとに変更できたのに何故この設定が無くなってしまったのだろう?


しかし裏技的ではあるがVS2005でもプロジェクト設定ファイルを直接テキストエディタで編集すればこれに近いことが実現できる。


例えば、Yanesdk.NETでMacOS用にbuildするときはmacapi.dll(id:Ozyさん作)への参照設定が必要になるが、これは以下のようにプロジェクトファイルを書き換えれば出来る。


<Reference Include="macapi, Version=0.0.0.0, Culture=neutral">
<SpecificVersion>False</SpecificVersion>
<HintPath>macosx\macapi.dll</HintPath>
</Reference>

以下のように変更。


<Reference Include="macapi, Version=0.0.0.0, Culture=neutral"
Condition=" '$(Configuration)' == 'MacOS%28Debug%29' or '$(Configuration)' == 'MacOS%28Release%29' ">
<SpecificVersion>False</SpecificVersion>
<HintPath>macosx\macapi.dll</HintPath>
</Reference>


VisualStudio側の表示はどうなるだろうか?


■ 参照設定


vcprojを変更した後にVisualStudioを起動し、参照設定を開くとmacapiの部分に警告マーク(△に!マーク)が表示される。この状態でビルドを行うと、「(警告)macapiが見つかりません。」という警告がビルドの結果として出力される。


そこから構成プロパティを「MacOS(Debug/Relase)」に変更する。そして、参照設定のmacapiをダブルクリックすると警告マークが消える。(そのあとWin32に戻しても警告マークはでなくなる。しかし、VisualStudioを再起動すると、また警告マークが現れる)


■ オブジェクトブラウザ


参照設定をダブルクリックしたとき表示されるオブジェクトブラウザでは、構成プロパティが「Win32」ではmacapiは表示されず、「MacOS」に変更するとmacapiが表示されるようになる。


若干VisualStudio側の表示がおかしい(対応していない)部分はあるが、これで切り分けは一応できていると思われる。