用于Visual Studio 2012的Xunit Test runner扩展的混合模式组装

Ale*_*nce 4 unit-testing xunit visual-studio-2012

我无法获得Visual Studio 2012 RTM的Xunit测试运行器扩展来加载我的x64混合模式程序集.

错误是:System.IO.FileLoadException:混合模式程序集是针对运行时的版本"v2.0.50727"构建的,如果没有其他配置信息,则无法在4.0运行时中加载.

类似的问题在这里:Visual Studio 2012测试项目混合模式运行时

我已将以下行添加到此文件夹中的所有.config文件:C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
Run Code Online (Sandbox Code Playgroud)

我甚至将它添加到此文件夹:C:\ Users\Alex\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\zuclypws.1z3,其中包含xunit.runner.visualstudio.dll ..我将其命名为xunit.runner.visualstudio. dll.config

有谁知道如何使这个工作?我希望这不是那么复杂.

Dou*_*oug 11

您还需要将.net 2.0程序集添加到列表中.

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我在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
Run Code Online (Sandbox Code Playgroud)

您可能还需要将其添加到xunit test runner的应用程序文件夹中的app.config(即程序文件内)