2016-08-05 48 views
0

Ich habe ein DB-Projekt, das ich durch Verbinden mit einer SQL 2016-Instanz und Importieren der Datenbank in Visual Studio erstellt habe.Datenbankbereitstellung von TFS schlägt beim Bereitstellen von CLR fehl

Ich habe eine Bereitstellung erstellt, indem ich eine Veröffentlichungsdatei erstellt und sie in der Quellcodeverwaltung überprüft habe. Zu den Einstellungen, die ich ändern musste, gehörte, dass ich keine Benutzerkonten oder Berechtigungsänderungen bereitstellen wollte, weil ich mehrere Konten von meinem System löschen wollte.

Wenn TFS MSBuild führt die Bereitstellung zu tun, hier ist die Befehlszeilenargumente, die übergeben werden: /p:VisualStudioVersion=14.0/t: Bauen; Veröffentlichen /p:SqlPublishProfilePath=MyDBProj.publish.xml

Das Problem in liegt, dass, wenn ich den Einsatz mit den folgenden (unter vielen anderen ähnlichen) Fehler nicht die CLR benutzerdefinierte Typen ausschließen und auch Baugruppen auszuschließen, schlägt fehl:

C:\Builds\1\MyDBProj\MyDBProj - Prod\bin\MyDBProj.publish.sql (0, 0) 
[System.Web] has an unresolved dependency to [System.Design]. A deployment script with correct ordering cannot be created. 

C:\Builds\1\MyDBProj\MyDBProj - Prod\bin\MyDBProj.publish.sql (0, 0) 
[System.Runtime.Remoting] has an unresolved dependency to [System.Web]. A deployment script with correct ordering cannot be created. 

C:\Builds\1\MyDBProj\MyDBProj - Prod\bin\MyDBProj.publish.sql (0, 0) 
[System.Design] has an unresolved dependency to [System.Web]. A deployment script with correct ordering cannot be created. 

C:\Builds\1\MyDBProj\MyDBProj - Prod\bin\MyDBProj.publish.sql (0, 0) 
An error occurred during deployment plan generation. Deployment cannot continue. 
(-1, 0) 
Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException) 
Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context) 
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) 
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager) 
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation) 

I Master als Datenbankreferenz versucht haben, verweisen. Ich bin mir nicht sicher, was ich sonst noch tun soll. Ich brauche die CLR-Komponenten, die mit der Datenbank bereitgestellt werden, wenn sie auf TFS basieren.

+0

Wurden die Builds lokal (nicht über TFS) ohne Probleme ausgeführt? –

+0

Ja. Wenn ich mich auf demselben Rechner anmelde (Build Server/TFS Server), lade VS und das Projekt, Build und Deployment, alles funktioniert gut. Nur wenn es über TFS läuft, schlägt es fehl. – SpaceCowboy74

Antwort

0

TFS ruft den MSBuild-Befehl auf, um die Lösung standardmäßig auf dem Build-Agent-Computer zu erstellen und zu implementieren. So können Sie Ihre Lösung mithilfe von VS2015 (oder MSBuild-Befehl) manuell auf dem Build-Agent-Rechner und lokal erstellen und bereitstellen. Stellen Sie sicher, dass alles ordnungsgemäß funktioniert, wenn Sie den Agenten manuell ausführen. Weitere Informationen zu Deploying CLR Database Objects von MSDN.

Darüber hinaus kann dies nach der Fehlerinfo durch eine zirkuläre Abhängigkeit verursacht werden. VS konnte kein Bereitstellungsskript mit korrekter Reihenfolge erstellen, da es jedes Mal, wenn es sich in der Abhängigkeitsstruktur durcharbeitete, an der Stelle beendet wurde, an der es gestartet wurde. Bitte überprüfen Sie dies, um das Problem einzugrenzen.

+0

Irgendeine Idee, wie man die zirkuläre Abhängigkeit findet? Seltsamerweise ist alles in Ordnung, wenn ich manuell von der Build Agent Machine/TFS Server (sie sind die gleichen Box) bereitstellen, wenn ich die Lösung in VS laden und von dort aus bereitstellen. – SpaceCowboy74

+0

Dachten Sie, dass dies mit SQL2016 zusammenhängen könnte? Was ist die Version Ihres TFS? Wenn es älter ist als TFS2015RTM, dann ist es vielleicht nicht so kompatibel mit SQL2016. Sie können zuerst auf die neueste Version TFS2015update3 (https://www.visualstudio.com/de-de/news/releasenotes/tfs2015-update3-vs) updaten und es erneut versuchen. –

+0

Ich habe alles auf den neuesten TFS aktualisiert (Update 3). Jetzt kann ich überhaupt keine Builds mehr bekommen. Ich stelle sie in die Warteschlange (unter Verwendung der XAML-Konfiguration) und sie sitzen einfach bei "Running for 0 seconds" und nichts wird aktualisiert. – SpaceCowboy74