Проект базы данных VS 2010 - различные соединения

У меня есть приложение, которое я разрабатываю в Visual Studio 2010, которое использует базу данных SQL Server. Поэтому я использую проект базы данных VS SQL Server 2008.

Проект базы данных требует целевого соединения, для которого используется для создания базы данных.

Проблема:

Этот проект находится под контролем исходного кода для команды разработчиков и сервера сборки. У некоторых разработчиков есть свой экземпляр SQL Server 2008 года, а у других - экземпляр по умолчанию. Идея простого использования "локального" синтаксиса не будет достаточной.

Мне нужна возможность настроить соединение с проектом базы данных вне системы контроля версий. Я вижу, что проект базы данных предлагает файлы переменных команды SQL, это то, что мне нужно?

Каков наилучший подход к решению этой проблемы?

Я использую MSBuild как часть моего сервера сборки - как этот подход может сочетаться с MSBuild?

2 ответа

Решение

Вкладка "Развертывание" свойств проекта базы данных Visual Studio 2010 содержит раскрывающийся список "Настроить параметры развертывания для:". Это раскрывающееся меню предоставляет две опции: "Мои настройки проекта" и "Моя изолированная среда разработки". Этот параметр позволяет изолировать ваши локальные параметры разработки от параметров проекта, которые будут сохранены в файле.dbproj.

В вашем сценарии очистка "Целевого подключения", назначенного в данный момент "Настройкам моего проекта", с последующей отправкой в ​​репозиторий сбросит настройки общего подключения.Вы также можете очистить параметр "Имя целевой базы данных", оставив процесс сборки под контролем, указав для него значение. После того, как это будет сделано, разработчики могут выбрать "Моя изолированная среда разработки" и настроить параметры подключения без их фиксации в репозитории, но развертывания в нем.

Процесс сборки затем получит управление, выполнив что-то вроде следующего: msbuild.exe {projectName}.dbproj /target:Deploy /property:TargetDatabase={targetDatabaseName};TargetConnectionString="{targetConnectionString}" По желанию вы можете удалить "TargetDatabase"свойство, одобряющее проект для предоставления этого значения.

Вы можете настроить псевдоним для любого экземпляра вашего SQL Server. Таким образом, каждый может ориентироваться на "Псевдоним", а не только на "локальный".

Вы можете найти некоторую информацию о том, как настроить псевдоним здесь: https://serverfault.com/questions/60738/how-to-create-an-alias-for-a-named-sql-server-instance