2010-02-18 61 views
4

在.NET 4中,加载.NET 2混合模式程序集需要在应用程序项目的app.config文件的startup element中设置useLegacyV2RuntimeActivationPolicy="true"在VS 2010中为测试项目设置useLegacyV2RuntimeActivationPolicy

如何为测试项目设置(以及是否有必要)?我得到的测试主机的一些非常奇怪的行为,但仅适用于直接使用CLR 2混合模式组件的测试,所以我怀疑这可能是罪魁祸首...

接收实际的错误是:

测试适配器'UnitTestAdapter'在运行测试'MyTest'时引发异常。异常是由调用的目标引发的。尝试读取或写入受保护的内存。这通常表明其他内存已损坏。

但是,它并未显示为测试失败,而是显示为错误。异常似乎发生在单元测试适配器中,而不是我的代码。

回答

2

据我所知,没有办法通过UI设置这个选项。我不确定这是否意图成为受支持的场景。它绝对看起来应该是。你能否提出一个关于连接的错误来追踪这个问题?

在此同时,你应该能够通过设置在QTAgent32应用程序的选项,以解决这个问题。这是实际上是用来运行单元测试过程,它位于

C:\ Program Files文件(x86)的\微软的Visual Studio 10.0 \ Common7 \ IDE \ QTAgent32.exe

是的,非常冒险的解决方案,但希望它解除您的阻碍。

+0

我会提交一个关于连接的错误 - 虽然我试图缩小导致这种行为的原因,但是很难说清楚。它似乎只发生在使用混合模式程序集标记[ExpectedException]的单元测试中。这可能是别的。 – 2010-02-18 21:13:23

+0

在进一步调查中,QTAgent32的配置已经有了这个指定 - 这必须是其他问题。 *感到沮丧* – 2010-02-18 21:13:59

+0

由于连接建议标记为答案。刚刚提交:https://connect.microsoft.com/VisualStudio/feedback/details/534700/odd-failures-in-test-projects-with-clr-2-mixed-mode-assemblies – 2010-02-18 21:44:18