当我使用VSTest.Console从命令行手动运行单元测试项目时,或者当我将它作为团队城市的构建步骤运行时(也使用vstest),我会得到以下错误:
Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime一些googling显示,这很可能是因为单元测试项目引用了另一个使用“SMO”来删除和创建数据库的项目。
当我在visual studio中运行它们时,单元测试运行良好。只有在从命令行或从TeamCity运行它们时,才会发生错误。关于堆栈溢出的所有相关问题都建议将以下内容添加到配置文件中:
但是,我不知道哪个配置文件。我尝试将它添加到app.config文件中(我手动复制到bin目录),但这并没有什么区别。visual使用的配置文件具有正确的启动属性(这解释了为什么在我从Visual运行测试时它可以工作)
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=”是真的?
发布于 2016-01-30 17:54:09
结果却很简单。我用来从命令行执行测试的命令是:
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" />https://stackoverflow.com/questions/35103039
复制相似问题