使用FileNotFoundException加载程序集失败 - Fusion说好了

时间:2012-03-07 14:59:19

标签: .net .net-assembly filenotfoundexception fusion

我有一个带有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协议。这说明绑定没问题:

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 个答案:

答案 0 :(得分:1)

最有可能的是,您的程序集链接到某些在搜索路径中找不到的DLL。如果C ++ / CLI代码包含“其他依赖项”,则必须将相应的DLL复制到单元测试项目的输出路径,该项目使用C ++ / CLI代码引用程序集。

查看单元测试项目引用的C ++ / CLI项目的项目属性。转到“链接器/输入”属性。如果“附加依赖项”下列出了LIB文件,请确保相应的DLL存在于单元测试项目的输出路径中。

不幸的是,如果无法加载从那里引用的C ++库,那么融合程序集绑定程序协议仍会报告要成功加载的程序集。