首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VSTest.Console错误:混合模式程序集是针对运行时的版本“v2.0.50727”构建的

VSTest.Console错误:混合模式程序集是针对运行时的版本“v2.0.50727”构建的
EN

Stack Overflow用户
提问于 2016-01-30 14:35:44
回答 1查看 380关注 0票数 0

当我使用VSTest.Console从命令行手动运行单元测试项目时,或者当我将它作为团队城市的构建步骤运行时(也使用vstest),我会得到以下错误:

代码语言:javascript
复制
Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime

一些googling显示,这很可能是因为单元测试项目引用了另一个使用“SMO”来删除和创建数据库的项目。

当我在visual studio中运行它们时,单元测试运行良好。只有在从命令行或从TeamCity运行它们时,才会发生错误。关于堆栈溢出的所有相关问题都建议将以下内容添加到配置文件中:

但是,我不知道哪个配置文件。我尝试将它添加到app.config文件中(我手动复制到bin目录),但这并没有什么区别。visual使用的配置文件具有正确的启动属性(这解释了为什么在我从Visual运行测试时它可以工作)

代码语言:javascript
复制
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.x86.exe.config (32-bit)

代码语言:javascript
复制
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.exe.config (64-bit)

请帮帮我!我该如何告诉VSTest“useLegacyV2RuntimeActivationPolicy=”是真的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-30 17:54:09

结果却很简单。我用来从命令行执行测试的命令是:

代码语言:javascript
复制
C:\...\TestProject> VSTest.Console \bin\Release\TestProject.dll

在这种情况下,调用的可执行文件是:

代码语言:javascript
复制
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

它在同一个文件夹中具有相应的.config文件vstest.console.exe.config。我补充说:

代码语言:javascript
复制
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  <requiredRuntime version="v4.0.20506" />
</startup>

正如建议的那样,here和所有东西都正常工作。

更新:

这也适用于我:

代码语言:javascript
复制
<startup useLegacyV2RuntimeActivationPolicy="true" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35103039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档