現在、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>
これを実行しようとすると、常に次のメッセージが表示されます。
混合モード アセンブリは、ランタイムのバージョン 'v2.0.50727' に対してビルドされており、追加の構成情報がないと 4.0 ランタイムに読み込むことができません。
これは、app.config ファイルを無視する Visual Studio 2012 RC テスト プロジェクトのバグですか、それとも完全に間違っていますか?
追加情報については、テスト コードも含めました。
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);