2

Ich versuche, ein PowerShell v5-Skript zum Erstellen und Veröffentlichen einer VS2017 WCF-Webdienstanwendung (.NET Framework 4) zu erstellen, damit ich es in Bamboo automatisieren kann. Ich habe den Msbuild-Befehl funktioniert, der den Build korrekt ausführt, und jetzt muss ich das Projekt in einem Ordner veröffentlichen, der ein FolderProfile verwendet.So automatisieren Sie Visual Studio 2017 Webprojekt veröffentlichen in Ordner

Ich kann es manuell mit Erfolg tun, indem Sie mit der rechten Maustaste auf das Projekt und wählen Sie veröffentlichen, dann wählen Sie das FolderProfile. Dadurch werden die Dateien, die auf der Website bereitgestellt werden sollen, im Verzeichnis bin \ Release \ PublishOutput des Projekts abgelegt. Ich möchte diese Publizierung in einem Powershell-Skript automatisieren.

Ich habe versucht, die Empfehlung auf Sayed Hashimi's Website, die ähnlich wie folgt ist (Ich verwende nur VS2017 Version von 15.2, und natürlich den Projektnamen und Profil mit meinen tatsächlichen Werten zu ersetzen);

msbuild MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile=<profile-name> /p:Password=<insert-password> /p:VisualStudioVersion=15.2 

Aber das hat Stecken Sie keine Dateien in der bin\Release\PublishOutput Lage. Es sah so aus, als ob es nur einen Standard Build gemacht hätte.

EDIT:

msbuild verzeichnet diese Zeile in der Ausgabe, wenn I den obigen Befehl auszuführen;

DeploymentUnpublishable: 
    Skipping unpublishable project. 

Ich habe durch this Post auf GitHub sah, und einige haben eine Lösung, wie die Aktualisierung zu v15.2 von VS2017 zitiert, die ich bereits getan haben;

Microsoft Visual Studio Enterprise 2017 
Version 15.2 (26430.16) Release 

Irgendwelche Ideen?

EDIT - Lösung

@ Leo-MSFT diese Lösung zur Verfügung gestellt ...

msbuild myproject\myproject.vbproj /p:DeployOnBuild=true /p:PublishProfile=FolderProfile.pubxml /p:Configuration=Release 

Das brachte die Dateien in bin \ release \ PublishOutput.

hatte ich mehrere Tage lang für diese Lösung gesucht und ich habe verschiedene Befehlsparameter vorgeschlagen in anderen SO und GitHub Forum-Beiträge, wie /t:Publish, /p:PublishProfileRootFolder und /p:VisualStudioVersion=15.2 hinzugefügt. Ich entfernte diese und verwendete einfach die Zeile, über der schließlich die veröffentlichte Ausgabe erstellt wurde, die ich brauchte.

Antwort

2

Dies hat keine Dateien in den Bereich bin \ Release \ PublishOutput gebracht. Es sah aus, als ob es nur einen Standard Build

Ich habe dieses Problem mit Ihrer Befehlszeile reproduziert. Nach Forschung dieses Problem für eine lange Zeit, ich versuche, den Parameter „/p:VisualStudioVersion=15.2“ zu entfernen, dann das Projekt mit der Kommandozeile erneut veröffentlichen:

msbuild MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile="MyProfile.pubxml" 

Es baut und erfolgreich veröffentlichen und Web-Projekt veröffentlichen, wo in dem Ordner Sie setzen in MyProfile.pubxml die Option "<publishUrl>".

Versuchen Sie bitte, den Parameter "/ p: VisualStudioVersion" in der MSBuild-Befehlszeile zu entfernen, überprüfen Sie, ob es für Sie funktioniert.

Hinweis: Ich habe auch diese Befehlszeile mit VisualStudioVersion für das Projekt von Visual Studio 2015 erstellt, funktioniert es gut. Nicht sicher, ob dies ein Problem für Visual Studio 2017 ist, muss ich bestätigen, wenn es ein Problem für Visual Studio 2017 ist, werde ich dieses Problem an Visual Studio-Team senden.

+0

Dies löste das Problem perfekt. Meine letzte Befehlszeile endete als msbuild myproject \ myproject.vbproj/p: DeployOnBuild = true /p:PublishProfile=FolderProfile.pubxml/p: Konfiguration = Freigabe. Dies bringt die Dateien in bin \ release \ PublishOutput. Vielen Dank – EiEiGuy

Verwandte Themen