Visual Studio 2012测试项目混合模式运行时

Mic*_*ers 15 unit-testing .net-4.0 .net-2.0 visual-studio-2012

我目前正在使用测试项目在Visual Studio 2012 RC中工作.我已经包含以下程序集:

  • Microsoft.SqlServer.Smo
  • Microsoft.SqlServer.SmoExtend
  • Microsoft.SqlServer.ConnectionInfo
  • Microsoft.SqlServer.Management.Sdk.Sfc

这些程序集是在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>
Run Code Online (Sandbox Code Playgroud)

当我打算运行时,我会一直收到以下消息:

混合模式组件被构建针对运行时的版本"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);
Run Code Online (Sandbox Code Playgroud)

And*_*ear 0

检查并确保您没有安装旧版本的 .Net 4.0。如果您下载了 2010 VS beta 或 2012 VS beta,则可能会发生这种情况,然后由于某种原因它会后台打印错误的版本。哦,这将与当前的 .Net 4.0 并行安装。参考