Es gibt eine andere Lösung für dieses Problem, wenn Sie Datenbank-Upgrade nicht inkrementelle benötigen. Wenn also die Datenbank für jeden Build neu erstellt werden soll, würde das Folgende auch funktionieren.
ein deploy Ziel-Datenbank-Projektdatei
Konfigurieren der Bereitstellungseinstellungen für ‚My project settings
‘ hinzufügen. Diese Einstellungen werden dann beim Erstellen der Lösung vom Build-Server verwendet. Bei der lokalen Erstellung werden die Einstellungen aus 'My isolated development environment
' verwendet.
- in der Datenbank Projekteigenschaften
Deploy Aktion ‚Create a deployment script (.sql) and deploy the database
‘ sein muss; Dies verhindert die Ausführung des Skripts, es wird nur erstellt.
- Datenbank-Projektdatei
die Datenbank-Projektdatei ändern (Rechtsklick-Datenbank-Projekt, wählen Sie Unload, erneut einen Rechtsklick, wählen Sie Bearbeiten [Projektname].dbproj) von
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
Um
<Project DefaultTargets="Build;Deploy" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
Wenn der Build-Server die Lösung, die das Datenbankprojekt aufbaut, wird die Standardziele auch das Hinzufügen der Datenbank bereitstellen. Dieser Build verwendet die für "My project settings
" ausgewählten Deploy-Einstellungen.
Pros
Cons
- Da das Standardziel zu Erstellen und Bereitstellen geändert wird, wenn ein Entwickler ein lokales der Lösung Rebuild tun, Es wird auch die Datenbank bereitstellen (nur Gebäude wird die Bereitstellung nicht auslösen)
Vielen Dank für diese Antwort! Ich hatte diesen Artikel vermisst und dieses Problem nie wirklich gelöst. –
Ist es nur ich oder ist das fast unmöglich, wenn ich einen nächtlichen Build mache? –
Um ehrlich zu sein, habe ich die Verwendung von Team Build zur Bereitstellung der DBs aufgegeben. Ich habe stattdessen alles für unser nächtliches umgestellt, um eine SQL-Expressdatei zu benutzen, die angeschlossene Referenzdatenbank ist, die wir gerade als Teil unseres Entwicklungsprozesses beibehalten; Wenn wir DB-Projekte einchecken, stellen wir nur sicher, dass wir einen Schemavergleich verwenden, um die Änderungen in die Referenzdatenbank zu schreiben. Auf diese Weise können wir die DB-Projekte nutzen, uns selbst versichern, dass sie jede Nacht "bauen", aber nicht mit dem DB-Projekteinsatz herumärgern müssen. –