WebDeploy mit MSBuild Nicht die Bereitstellung von TeamCity
Ich versuche, mit MSDeploy zum bereitstellen eines MVC-Projekt, um den server mit TeamCity. Wenn ich Sie auf mein computer in der powershell mit dem folgenden Befehl:
msbuild.exe .\mvc.csproj /p:PublishProfile=DevServer /p:VisualStudioVersion=11.0
/p:DeployOnBuild=True /p:Password=MyPassword /p:AllowUntrustedCertificate=true
Er baut das Projekt und setzt es an den server (info definiert, in dem DevServer veröffentlichen Profil) perfekt. Die Ausgabe zeigt eine MSDeployPublish
Abschnitt am Ende, in denen ich text wie Starting Web deployment task from source...
und dann mit Zeilen, die mir sagen, welche Dateien aktualisiert werden, etc.
Wenn ich dieses auf TeamCity, mit einer MSBuild-Build-Schritt, der auf die gleiche Datei mit dem gleichen Parameter (aus der gleichen Arbeitsverzeichnis) es baut das Projekt aber nicht veröffentlichen. Stattdessen wurde die reguläre Ausgabe von einem build-Prozess (CoreCompile, _CopyFilesMarkedCopyLocal, GetCopyToOutputDirectoryItems, CopyFilesToOutputDirectory), aber dann nicht wirklich gehen und alles veröffentlichen.
Welche änderungen ich vornehmen muss, um das setup in TeamCity, um es zu veröffentlichen, bereitstellen, in der gleichen Weise, dass es funktioniert mit MSBuild von meinem computer?
(TeamCity 7.1, MSBuild 4.0, WebDeploy 3.0, Visual Studio 12, IIS 7. Bezogen auf meine Vorherige Frage)
Sanitized version des PublishProfile ist hier erhältlich: gist.github.com/7326d2a7f5523058d662
Yaakov, haben Sie verlassen mit PublishProfile und dann verwenden Sie die zusätzlichen Parameter statt?
InformationsquelleAutor Yaakov Ellis | 2013-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wir tun unser WebDeploys mit MSBuild, TeamCity Schritt wie folgt konfiguriert:
Wir die integrierte Authentifizierung verwenden; ändern Sie wie nötig, um zu passen Sie Ihr Schema. Der Wert dieses, denke ich, ist, dass es baut alles von Grund auf und verlässt sich nicht auf eine vorgefertigte Paket. Aus dem Kern, die Sie geschrieben ich bemerkt, dass du einige DB publishing, die wir nicht verwenden, WebDeploy, damit kann ich nicht bieten keine Führung gibt. Hoffe, das hilft.
Gotcha. Etwas, das Sie kostenlos erhalten, mit dem obigen Ansatz (und vielleicht mit der Nutzung von WebDeploy?) ist, dass es dann ausführen Web.config-Transformationen für Sie.
Für einige Grund, WebDeploy nicht bereitstellen, die dll(s) der referenzierten Projekte in der gleichen Projektmappe.
InformationsquelleAutor John Hoerr
Ich verwenden MSBuild.exe zum Paket zip -, und MSdeploy.exe zur Implementierung in getrennten Schritten.
Bereitstellen package.zip Datei auf der Kommandozeile:
Dieser Befehl ist auch Wert, im detail erklärt:
-verb:sync : macht das web-site-Synchronisierung von der Quelle zum Ziel
Quelle:package="C:\Build\MyAppName.Debug.zip" : - Quelle ist ein MSBuild-zip-Datei-Paket
-dest:auto,wmsvc=webservername : verwenden Sie die Einstellungen in der package-Datei für die Bereitstellung auf dem server. Das Benutzerkonto ist ein OS-level-Konto mit der Berechtigung. Der hostname angegeben ist, aber nicht name der IIS-Website (, die zuvor angegeben, in der MSBuild-Projekt-Datei in den Projekt-Eigenschaften).
Können Sie die Parameter ändern, basierend auf Ihrer Konfiguration. Ich mag es auf diese Weise, weil mit separater Schritte, die leichter zu Debuggen Probleme.
Verwenden, TeamCity build-Schritt und das command line runner.
Update:
Wenn Sie wollen, ein Beispiel, wie man die ZIP-Paket mithilfe von MSBuild, probieren Sie etwas wie dieses:
Diese sollte das gleiche auf Ihrem lokalen PC als auch auf dem CI-server.
VisualStudioVersion=11.0
)Sind Sie in der Lage, auf der Kommandozeile ausgeführt, die lokal auf dem server w/TeamCity installieren? Sie erhalten möglicherweise zusätzliche Ausgabe.
InformationsquelleAutor Raul Nohea Goodness
Hier sind die config-Einstellungen, die schließlich für mich gearbeitet:
InformationsquelleAutor Yaakov Ellis
Ich hatte genau das gleiche Problem! Ich habe die Lösung, die ich verwendet, über: MsBuild nicht finden, veröffentlichen Profil
Grundlagen wurden:
InformationsquelleAutor Matt Woodward
Stellen Sie sicher, dass die
Microsoft Web Developer Tools
feature installiert für Visual Studio. Diese fehlten auf meinem build-agent, aber sobald ich habe es die TeamCity build hat Prima funktioniert.InformationsquelleAutor Holistic Developer
Dies kann passieren, wenn das build-Ziel-Pfade fehlen von Ihrem MSBuild-Verzeichnis. Anstatt zu versuchen, um diejenigen, um eine Linie auf jedem Entwickler-Rechner, installieren Sie die Ziele der Nuget. So wird es immer für alle gleich sein, unabhängig davon, wie Ihre Maschine eingerichtet ist.
InformationsquelleAutor heneryville