我目前正在使用测试项目在Visual Studio 2012 RC中工作。我已经包含以下程序集:
这些程序集是在2.0.50727版本中构建的,我在.NET 4.0中有一个测试项目。因此,基于此信息,我已将app.config文件添加到项目中,其中包含以下行:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
当我打算运行时,我会一直收到以下消息:
混合模式程序集是针对运行时的版本“v2.0.50727”构建的,如果没有其他配置信息,则无法在4.0运行时加载。
这是Visual Studio 2012 RC测试项目中的一个错误,它忽略了app.config文件,还是我做错了什么?
有关其他信息,我还包括了我的测试代码:
var connectionString = new SqlConnectionStringBuilder()
{
DataSource = @"(local)",
IntegratedSecurity = true
}.ConnectionString;
var sql = "alter database [Test] set single_user with rollback immediate go ";
sql += "drop database [Test] go ";
sql += "create database [Test] go ";
sql += Properties.Resources.Test;
var connection = new SqlConnection(connectionString);
var server = new Server(new ServerConnection(connection));
server.ConnectionContext.ExecuteNonQuery(sql);
答案 0 :(得分:1)
当它进入RTM时,这似乎在Visual Studio 2012中得到修复。无需更新配置文件
我已经在Visual Studio 2012 Update 4和Visual Studio 2013 Update 1 RC中测试过,您的代码可以完美地使用上面提到的代码和程序集引用,而无需更新测试运行器的配置文件。这可能是在Visual Studio 2012的测试版或候选发布版本中被破坏的,但如果是的话,它现在似乎已经修复了。
正如Hans所提到的,您可以更新.config
的{{1}}文件,但这会更改计算机上所有测试项目的行为,并且需要应用于所有在您的项目上工作的人(如果您使用的话,则在构建服务器上)。 这应该是最后的手段!!
答案 1 :(得分:0)
检查以确保您没有安装旧版本的.Net 4.0。如果您下载了2010 VS beta或2012 VS beta,那可能会发生,然后由于某种原因,它会错误地调整错误。哦,它将与当前的.Net 4.0并行安装。 reference