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

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 回答