2

単体テスト プロジェクトで参照したい C++/CLI コードを含むアセンブリがあります。MSTest は次のように述べています。

Test method  Grafik.Implementation.Tests.MappingHelperTests.GetMappedFeatures_OneMappedFeature_OneFeatureReturned threw exception: 
System.IO.FileNotFoundException: Die Datei oder Assembly "Graphic.Interface.Managed.dll" oder eine Abhängigkeit davon wurde nicht gefunden. Das angegebene Modul wurde nicht gefunden.

Fusion Assembly-Binder プロトコルを有効にしました。そして、これはバインディングがOKだったことを示しています:

LOG: Die Bindung war erfolgreich. Assembly wird zurückgegeben von C:\xyz\Grafik.Tests\bin\x86\Debug\Graphic.Interface.Managed.dll.
LOG: Die Assembly wird im default-Load-Kontext geladen.

ここで何が悪いのか誰か知っていますか?プラットフォームは x86 です。前もって感謝します!

4

1 に答える 1

1

ほとんどの場合、アセンブリは、検索パスで見つからない DLL にリンクしています。C++/CLI コードに「追加の依存関係」が含まれている場合、対応する DLL を単体テスト プロジェクトの出力パスにコピーして、C++/CLI コードでアセンブリを参照する必要があります。

単体テスト プロジェクトによって参照される C++/CLI プロジェクトのプロジェクト プロパティを調べます。「リンカー/入力」プロパティに移動します。「追加の依存関係」の下に LIB ファイルがリストされている場合は、対応する DLL が単体テスト プロジェクトの出力パスに存在することを確認してください。

残念ながら、フュージョン アセンブリ バインダー プロトコルは、そこから参照される C++ ライブラリをロードできない場合でも、アセンブリが正常にロードされたと報告します。

于 2012-06-25T13:38:59.057 に答える