Проект тестирования 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>
Когда я собираюсь запустить это, я все время получаю следующее сообщение:
Сборка смешанного режима построена по сравнению с версией "v2.0.50727" среды выполнения и не может быть загружена в среду выполнения 4.0 без дополнительной информации о конфигурации.
Является ли это ошибкой в проекте Visual Studio 2012 RC Test, который игнорирует файл 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);
Ответы
Ответ 1
Это, похоже, исправлено в Visual Studio 2012, когда он прошел RTM. Нет необходимости обновлять конфигурационные файлы
Я тестировал это в Visual Studio 2012 Update 4 и Visual Studio 2013 Update 1 RC, и ваш код работает безупречно с вышеупомянутыми ссылками на код и сборку и без обновления файла конфигурации тестового бегуна. Возможно, это было нарушено в бета-версии или релизе кандидата Visual Studio 2012, но если бы это было так, то теперь оно исправлено.
Как упоминает Ханс, вы можете обновить файл .config
для vstest.executionengine.x86.exe.config
, но это изменит поведение для всех тестовых проектов на вашем компьютере и должно применяться ко всем людям, работающим над вашим проектом (и на сервере сборки если вы используете его). Это должно быть в крайнем случае!
Ответ 2
Убедитесь, что у вас не установлена более старая версия .Net 4.0. Если вы загрузили либо бета-версию VS 2010, либо бета-версию VS 2012, это может произойти, а затем по какой-то причине оно запустится неправильно. О, и это будет бок о бок с текущим .Net 4.0. ссылка