【发布时间】:2012-08-03 22:48:58
【问题描述】:
我正在开发使用 VS2005 C++/CLI 库的 .NET 4 应用程序。围绕 C++/CLI 库的测试是基于自定义控制台的测试运行器,并且有点笨拙。我一直在尝试使用 nunit 编写一些新的测试。
问题是基于控制台的应用程序可以加载所有依赖程序集,但 Nunit 抱怨它找不到程序集(例如 System.Runtime.Serialization.SerializationException : Unable to find assembly 'msvcm80, Version=8.0.50727.6195, Culture=neutral , PublicKeyToken=b03f5f7f11d50a3a')。
我已经确定基于控制台的应用程序正在 C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\mscvm80.dll 加载程序集,并将此文件手动复制到构建目录和测试运行程序目录.这没有帮助。
Depends.exe 告诉我 GPSCV.DLL 和 IESHIMS.DLL 找不到,但这不会阻止控制台应用程序加载依赖项,因此不确定这是否重要。
有没有人有任何解决 Nunit 测试的技巧,这些测试依赖于旧的 C++/CLI 库?
【问题讨论】:
-
我不确定这是否相关,但您的计算机上安装了 .NET 2.0 吗?另外,您能否将 C++/CLI 库重新构建为以 .NET 4 为目标?
-
谢谢,我没有在 Windows 7 程序和功能中安装 .NET 2.0 运行时。我会安装,看看它是否有任何魔力。为 .NET 4 重新编译也很有意义(其中可能存在一些可怕的其他 .NET 2 依赖项,但在我尝试之前不会知道!)。