当我使用 VSTest.Console 从命令行手动运行我的单元测试项目时,或者当我从 teamcity 将其作为构建步骤运行时(也使用 vstest),我收到以下错误:
Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime
一些谷歌搜索表明,这可能是由于单元测试项目引用了另一个使用“SMO”删除和创建数据库的项目。
当我从 Visual Studio 中运行单元测试时,它们运行良好。仅当我从命令行或 TeamCity 运行它们时才会出现该错误。stackoverflow 上的所有相关问题都建议将以下内容添加到配置文件中:
但是,我不知道哪个配置文件。我尝试将其添加到 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"”?