7

C++ DLL プロジェクトと、この DLL を (PInvoke を使用して) 使用する C# プロジェクトを含むソリューションがあります。

dll はx64/Release私のソリューション フォルダー内のフォルダーにビルドされています。これは理にかなっています。C# プロジェクトが DLL プロジェクトのフォルダーに突っ込む必要がないからです。

今でもそれを参照する正しい方法は何だろうと思います。現在、DLL プロジェクトは C# プロジェクトに依存しています。私の直感では、それで十分だったはずですが、C# プロジェクトでは DLL が見つからないと言っています。

.dllファイルも参照として追加する必要がありますか?これは今はうまくいくかもしれないと思っていましたが、長期的にはプロジェクトの設定が変更される可能性があるため、問題が発生する可能性があります。

4

3 に答える 3

2

以前、似たような質問に答えたことがあります。したがって、ここではテキストを繰り返しません。

以下をご覧ください。

それが役に立てば幸いです。

于 2013-04-03T07:33:02.163 に答える
1

アンマネージド DLL をマネージド プロジェクトの参照として追加することはできません。DLL は、実行可能ファイルのフォルダーまたはシステムの PATH の他のフォルダーに存在する必要があります。

最良の方法は、「ビルド後のイベント」を使用して、再ビルドするたびに必要なフォルダーに VS に DLL をコピーさせることです。

于 2013-04-03T07:38:13.217 に答える
1

通常、このような状況では、すべてのプロジェクトが にコンパイルされるようにソリューションを構成します$(SolutionDir)bin\$(Configuration)。バイナリは本番モードと同じ方法で配置され、DLL は簡単に使用できます。

DLL の最新バージョンを維持することに関しては、依存関係を設定できることを覚えておいてください。DLL に何か変更があった場合、アセンブリ/アプリケーションをビルドする前に再ビルドされます。

さらに別の方法は、ビルド イベント (ビルド前およびビルド後) を使用して、DLL を適切なフォルダーにコピーすることです。

于 2013-04-03T07:34:39.863 に答える