私はこの問題を MSDN に投稿しましたが、MS サポートに連絡するのは少し時間の無駄です。彼らは 1 日 1 文しか手がかりなしに提供してくれます :( とにかく、ここに私の質問があります。コメントをいただければ幸いです。
相互運用プロジェクトでアセンブリの読み込みの問題が発生しています
つまり、3 つの VS プロジェクトがあります。
A は、静的バインディングを介して B を参照するネイティブ C プロジェクトです。つまり、A は必要に応じて B の関数を呼び出します。
B は CLI ラッパーで、C のオブジェクトを静的に参照します。
C は純粋な .NET コードである CS プロジェクトです。
B と C はどちらも厳密な名前で署名されており、 AssemblyInfo.csファイルとAssemblyInfo.cppファイルはキー ファイルで更新されます。
B と C の両方がgacutil.exe V4.0を使用して GAC に登録されています。A には、B.dll が登録されているフォルダーから B.dll への参照があり、B には、C が登録されているフォルダーと同じフォルダー内の C への参照があります。
A からプログラムを実行すると、次のメッセージで失敗します。
「コンピューターに B.dll が見つからないため、プログラムを開始できません。>この問題を解決するには、プログラムを再インストールしてください。
私がそれを機能させる唯一の方法は、B.dllをA.exeの同じフォルダーにコピーすることです。C.dll が GAC から読み込まれているようです。
パースペクティブをロードすると、混合アセンブリは異なる方法で機能しますか?