VSTest.Console error: Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime
VSTest.Console error: Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime
当我使用 VSTest.Console 从命令行手动 运行 我的单元测试项目时,或者当我 运行 它作为来自 teamcity 的构建步骤时(也使用 vstest):
Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime
一些谷歌搜索显示这可能是由于单元测试项目引用了另一个使用 'SMO' 删除和创建数据库的项目。
当我从 visual studio 中 运行 时,单元测试 运行 很好。只有当我从命令行或 TeamCity 运行 它们时才会发生错误。 Whosebug 上的所有相关问题都建议将以下内容添加到配置文件中:
但是,我不知道是哪个配置文件。我已经尝试将它添加到 app.config 文件(我手动将其复制到 bin 目录),但这没有任何区别。 visual studio 使用的配置文件具有正确的启动属性(这解释了为什么当我 运行 来自 Visual Studio 的测试时它起作用)
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.x86.exe.config (32-bit)
或
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.exe.config (64-bit)
请帮忙!我应该如何告诉 VSTest "useLegacyV2RuntimeActivationPolicy="true""?
原来很简单。我用来从命令行执行测试的命令是:
C:\...\TestProject> VSTest.Console \bin\Release\TestProject.dll
本例中的调用可执行文件是:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe
在同一文件夹中有相应的 .config 文件 vstest.console.exe.config。我补充说:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<requiredRuntime version="v4.0.20506" />
</startup>
按照建议 here 一切正常。
更新:
这也适用于我:
<startup useLegacyV2RuntimeActivationPolicy="true" />
当我使用 VSTest.Console 从命令行手动 运行 我的单元测试项目时,或者当我 运行 它作为来自 teamcity 的构建步骤时(也使用 vstest):
Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime
一些谷歌搜索显示这可能是由于单元测试项目引用了另一个使用 'SMO' 删除和创建数据库的项目。
当我从 visual studio 中 运行 时,单元测试 运行 很好。只有当我从命令行或 TeamCity 运行 它们时才会发生错误。 Whosebug 上的所有相关问题都建议将以下内容添加到配置文件中:
但是,我不知道是哪个配置文件。我已经尝试将它添加到 app.config 文件(我手动将其复制到 bin 目录),但这没有任何区别。 visual studio 使用的配置文件具有正确的启动属性(这解释了为什么当我 运行 来自 Visual Studio 的测试时它起作用)
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.x86.exe.config (32-bit)
或
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.exe.config (64-bit)
请帮忙!我应该如何告诉 VSTest "useLegacyV2RuntimeActivationPolicy="true""?
原来很简单。我用来从命令行执行测试的命令是:
C:\...\TestProject> VSTest.Console \bin\Release\TestProject.dll
本例中的调用可执行文件是:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe
在同一文件夹中有相应的 .config 文件 vstest.console.exe.config。我补充说:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<requiredRuntime version="v4.0.20506" />
</startup>
按照建议 here 一切正常。
更新:
这也适用于我:
<startup useLegacyV2RuntimeActivationPolicy="true" />