MsBuild findet das Veröffentlichungsprofil nicht

8

Ich habe eine VS 2012-Lösung, die zwei Projekte (WCF C # Service App und eine VB Web UI) enthält, die ich über die TeamCity / MsBuild-Befehlszeile bereitstellen möchte. Jedes Projekt enthält ein Veröffentlichungsprofil - nennen wir es "Testprofil" - das funktioniert gut, wenn es von der IDE ausgeführt wird.

Wenn das C # -Projekt jedoch als zwei aufeinanderfolgende Build-Schritte ausgeführt wird, wird es zwar implementiert, aber das VB-Projekt schlägt mit dem folgenden Fehler fehl:

  

[09:27:05] [ValidatePublishProfileSettings]   GetPublishingLocalizedString [09:27:05] [GetPublishingLocalizedString]   C: \ Programme   (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.targets (4435,   5): Der Wert für "PublishProfile" wird auf "Testprofil" gesetzt   finde die Datei unter   'C: \ BuildAgent \ work \ 61493e349d61af8c \ Yms.Web.Ui__profiles \ Test   Profile.pubxml 'aber es konnte nicht gefunden werden.

Jeder Build-Schritt ist so eingerichtet, dass MsBuild v4.0, Run Platform x64, ToolsVersion 4.0 verwendet wird. Die Befehlszeilenparameter sind:

  

/ P: Konfiguration="Testprofil"
  / p: DeployOnBuild = Wahr   / p: PublishProfile="Testprofil"
  /p:VisualStudioVersion=11.0   / p: Passwort = james2

Wenn es als einzelner Build-Schritt gegen die Lösung statt gegen Projekte ausgeführt wird, erhalte ich den gleichen Fehler, außer dass "Ui_profiles" in der Fehlermeldung durch "PublishProfiles" ersetzt wird.

Jede Hilfe wird sehr geschätzt, das macht mich verrückt

    
Jim McKeon 24.07.2013, 16:42
quelle

3 Antworten

20

Ich hatte genau das gleiche Problem, aber für ein VS2010-Webanwendungsprojekt (mit dem Azure SDK 1.8-Update, um die Veröffentlichungsoptionen zu aktualisieren). Es schien so, als ob die von MS bereitgestellten Web Publishing Targets den Pfad für die Publish Profile nicht korrekt auswerten würden.

Ich habe zwei wichtige Dinge getan:

  • Installation des Azure SDK (1.8) auf dem Build-Server (Andernfalls wurden die Veröffentlichungsprofile ignoriert)
  • Erzwingt den Parameter "PublishProfileRootFolder" in der Build-Konfiguration von Teamcity (Andernfalls wird der falsche Pfad verwendet, der von den MS Web Publishing-Zielen bereitgestellt wird)

Meine MSBuild-Befehlsparameter sahen wie folgt aus:

/ P: DeployOnBuild = Wahr
/ P: PublishProfile = [Name meines Profils (ohne Dateierweiterung)]
/P:PublishProfileRootFolder="%teamcity.build.checkoutDir%\Source\Web Application \ My Project \ PublishProfiles "(wo Ihre Veröffentlichungsprofile gespeichert werden)
/ P: AllowUntrustedCertificate = Wahr
/P:Password=%env.DomainPassword%

Hoffe das hilft jemandem im selben Boot!

    
Matt Woodward 28.01.2014 04:32
quelle
1

Die Antwort von Matt Woodward brachte mich näher an die Lösung, aber ein kritischer Schritt fehlte mir. Insbesondere musste ich die publishProfileRootFolder -Eigenschaft für die MSBuild-Aufgabe wie folgt angeben:

%Vor%

Ich habe auch entschieden, den Wert für $ (PublishProfileRootFolder) direkt in die MSBuild-Projektdatei einzubetten, anstatt ihn als Befehlszeilenparameter zu übergeben:

%Vor%     
Sam 22.06.2017 14:06
quelle
1

Hatte heute ein ähnliches Problem. In meinem Fall war es ein zu langer Weg. Als ich den Namen des Veröffentlichungsprofils gekürzt habe, wurde das Web-Bereitstellungspaket problemlos erstellt.

    
Sander Engelen 18.12.2017 15:38
quelle