2012-03-07 1 views
2

ユニットテストプロジェクトで参照したいC++/CLIコードのアセンブリがあります。 MSTestを氏は述べています:Assembyを読み込むのがFileNotFoundExceptionで失敗しました - FusionはすべてOKです

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の組立・バインダープロトコルを活性化しました。これはバインディングが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です。 ありがとうございます!

答えて

1

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

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

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

関連する問題