Visual Studio 2012中使用Xunit测试运行器扩展的混合模式程序集

4
我无法让Visual Studio 2012 RTM的Xunit测试运行扩展程序加载我的x64混合模式程序集。错误信息是: System.IO.FileLoadException: 混合模式程序集是针对运行时版本“v2.0.50727”构建的,需要额外的配置信息才能在4.0运行时中加载。我在此文件夹的所有.config文件中添加了以下行: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow。类似的问题可以参考这里:Visual Studio 2012 Test Project Mixed Mode Runtime
<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>

我甚至把它添加到了这个文件夹中:C:\Users\Alex\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\zuclypws.1z3,其中包含xunit.runner.visualstudio.dll。我把它命名为xunit.runner.visualstudio.dll.config。
有人知道如何让它工作吗?我希望这不是那么不必要的复杂。
1个回答

11

你需要将 .net 2.0 组件也添加到列表中。

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

我曾经在VS 2012中写过关于这个问题的文章:

http://www.diaryofaninja.com/blog/2012/09/13/net-20-mixed-mode-assemblies-in-visual-studio-net-45-test-projects

在Visual Studio 2012中,您需要将启动代码添加到以下文件中:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config

你可能还需要将这个添加到xunit测试运行器的应用程序文件夹内的app.config中(即在program files内)。


我最终购买了一个SSD并使用Resharper(因为Submain的人似乎不想修复我的testmatrix问题)...但我回去测试了一下,经过大量的工作,我终于让它正常运行了。感谢您的帮助,希望有人能找出如何阻止这种无聊的事情发生。 - Alex Spence
可以在我的电脑上运行,但是我的应用/测试是x64的,所以我不得不修改“vstest.executionengine.exe.config”文件。 - jsambuo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接