2つのプロジェクトを含むVisualStudio2008ソリューションがあります。C++DLLとCsharpアプリケーション。
Csharpアプリケーションは、[DllImport]を使用してDLL内の関数にアクセスし、DLLに依存関係を設定します。
何らかの理由で、依存関係を設定するだけでは、VSがDLLをアプリのビルドパスにコピーするのに十分ではありません。そのため、アプリプロジェクトにはビルド後のイベントがあり、DLLがコピーされます。(誰かがこれを行うためのよりクリーンな方法を知っているなら、私に知らせてください!)
私が抱えている問題は、DLLコードに変更を加えてから、デバッガーでCsharpアプリケーションを実行しようとすると、VS2008がDLLを再構築(および再コピー)する必要があることを認識できないことです。
Csharpアプリケーションの再ビルドを強制する必要があります(つまり、ビルドを明示的に選択するか、.CSファイルに「タッチ」することによって)。
Visual Studioに正しいことをするように指示する方法を知っている人はいますか?
編集:私はプロジェクトの依存関係を使用しています。それらは正しく機能していません。
ビルド後のイベントを使用してDLLをコピーしています。
問題は、単にアプリケーションをデバッグすることを選択した場合、依存関係があるにもかかわらず、 VisualStudioが変更されたC++プロジェクトの再コンパイルに失敗することです。
(「デバッグ」ではなく)「ビルド」を選択すると、C ++ DLLがビルドされるため、依存関係が機能していることがわかります。