1つの Visual Studio のソリューション内で、C# と C/C++ のプロジェクトを混在させた場合の構成についてです。
やりたいことは以下です。
- C/C++ で作成したライブラリを C# のプロジェクトで参照したい
- 従って、C# のプロジェクトの前に C/C++ のプロジェクトをビルドする必要がある
依存関係
ソリューションエクスプローラーで C# のプロジェクトを右クリックし、[ビルド依存関係] > [プロジェクト依存関係] を選択します。
C/C++ のプロジェクトにチェックを入れます。
これで、C# のプロジェクトより先に C/C++ のプロジェクトのビルドが行われるようになります。
構成マネージャーの設定
依存関係を設定しただけでは、C# のプロジェクトをビルドする際に、C/C++ のビルドが自動で行われるようにはならなかったので、構成マネージャーで設定します。
ソリューションエクスプローラーでソリューションを右クリックし、[構成マネージャー] を選択します。
C/C++ のプロジェクトにチェックを入れます。
(Debug ビルドと Release ビルドの両方でチェックを入れます。)
成果物のコピー
C# 側のプロジェクトのビルド前イベント(またはビルド後イベント)で、C/C++ のプロジェクトで作成した DLL を C# のプロジェクトの出力フォルダにコピーするようにバッチファイルなどを作成します。