强名称验证从单元测试在自定义AppDomain中运行C#app时失败

时间:2014-12-22 09:29:07

标签: c# unit-testing appdomain strongname

我有一个使用非托管C ++代码的程序,我想为它编写单元测试(好吧,更像是系统测试)。

我想在不同的AppDomain中运行Unit Test中的整个程序,这样我就可以更轻松地注入测试代码。

问题是,当我尝试运行它时,我收到此错误:

The C++ module failed to load while attempting to initialize the default appdomain
(source: my own code)

Inner Exception:

Strong name validation failed. (Exception from HRESULT: 0x8013141A)
(source: msvcm90)

我使用MSTest作为测试环境。

我已经尝试更改了一些app.config文件,但可能是错误的文件。我也尝试使用AppDomainSetup对象,但我不知道在那里配置什么来阻止它执行强名称检查。

我使用AppDomain.ExecuteAssembly从单元测试启动应用。

修改

我尝试过的最新事情是使用appDomain.CreateInstanceAndUnwrap加载我制作的代理类,它也实现了MarshalByRefObject。代理类加载正常,但在其中我尝试调用启动初始化的函数并运行我想要测试的实际代码,并且仍然会出现上述错误。

我已尝试使用fuslogvw.exe,但我从中得不到任何结果。我想这是因为失败的是加载非托管DLL。

0 个答案:

没有答案