Nie ma innego rozwiązania tego problemu, jeśli nie trzeba przyrostowe uaktualnienie bazy danych. Więc jeśli odtworzenie bazy danych dla każdej kompilacji jest w porządku, następujące czynności również by działały.
Dodaj cel wdrożyć do pliku bazy danych Projektu
skonfigurować ustawienia wdrażania dla „My project settings
”. Ustawienia te będą następnie używane przez serwer kompilacji podczas budowania rozwiązania. Podczas budowania lokalnie używane będą ustawienia z "My isolated development environment
".
- W właściwości projektu bazy danych
Deploy działania muszą być „Create a deployment script (.sql) and deploy the database
”; to uniemożliwi wykonanie skryptu, tylko go utworzy.
- plik projektu bazy danych
zmodyfikować plik projektu bazy danych (projekt bazy danych kliknij prawym przyciskiem myszy, wybierz Unload, ponownie kliknij prawym przyciskiem myszy, wybierz Edit [NazwaProjektu].dbproj) z
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
Aby
<Project DefaultTargets="Build;Deploy" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
Gdy serwer budowy buduje roztwór zawierający projekt bazy danych, dodając cele domyślne będą również wdrażać bazy danych. Ta kompilacja użyje ustawień wdrażania wybranych dla "My project settings
".
Plusy
Wady
- Ponieważ cel domyślna zmienia się zbudować i wdrożyć, gdy deweloper zrobić lokalny Rebuild rozwiązania, wdroży także bazę danych (budynek nie będzie wyzwalał wdrożenia)
Dziękuję bardzo za tę odpowiedź! Opuściłem ten artykuł i nigdy tak naprawdę nie rozwiązałem tego problemu. –
Czy to tylko ja, czy jest to prawie niemożliwe podczas nocnej kompilacji? –
Szczerze mówiąc, zrezygnowałem z używania kompilacji zespołu do wdrożenia DB. Zamiast tego zamieniłem wszystko na nasze codzienne używanie bazy danych dołączonej do pliku SQL Express, którą utrzymujemy w ramach naszego procesu rozwoju; kiedy sprawdzamy zawartość projektu DB, upewniamy się, że użyjemy porównania schematu, aby zapisać zmiany w referencyjnym DB. W ten sposób możemy korzystać z projektów DB, upewniając się, że "budują" co noc, ale nie muszą się bać z rozmieszczeniem projektu DB. –