2015-12-03 9 views
25

Ich trete die Reifen in die Vorschau für das neue Release Management System von Visual Studio Team Services ein. Mein Szenario ist eine klassische Website (ASP.NET 4.5) mit einem Git-Repository in VSTS. Die Build-Definition ist erfolgreich, wie hier zu sehen:Bereitstellen von WebSite-Builds in Azure von VSTS Release Management

enter image description here

Es eingerichtet ist, als ein Artefakt zu veröffentlichen, die von Release Manager aufgenommen werden kann, wie hier gezeigt:

enter image description here

Auf der Release Manager Seite ich habe diesen Artefakt richtig verbunden wie hier gezeigt:

enter image description here

Und hier können Sie meine Umgebungen sowie die damit verbundenen Aufgaben (alle 3 sind Klone)

enter image description here

Wenn ich die Freigabe laufen die Build veröffentlicht in Ordnung, es verbindet sich mein Abonnement sehen, aber wenn es versucht, finden sie die Paketdatei die folgenden Fehler in Zeile 101 des Ausgabeprotokolls hat:

„‚C.: \ a \ 4fe43dd1a *** zip‘es wurden keine Dateien bereitstellen mit dem Suchmuster gefunden“

Hier ist die volle Ausgabe:

enter image description here

Dies ist, wo ich steckte, wie ich meine Artefakt Verbindung angenommen über VSTS für mich, diesen Weg lösen sollten. Offensichtlich fehlt mir irgendwo ein wichtiges Teil des Puzzles, aber ich habe die verfügbare Dokumentation so gut wie möglich befolgt.

Wenn jemand eine Lösung hat oder mir in die richtige Richtung zeigen kann, würde es sehr geschätzt werden!

--- EDIT ---

verwenden ich die Dateiauswahl ein Web-deploy-Paket (siehe unten) zu wählen. Ich habe versucht, die Root-Website sowie den bin-Ordner zu verwenden. Beide Versuche ergibt einen Fehler, der besagt: "Es wurden keine Dateien gefunden mit Suchmuster implementieren 'C: \ a \ 4fe43dd1a \ Klassische Webseite Definition \ Drop \ ClassicWebsite \ bin'"

enter image description here

- - EDIT 2 ---

ich eine MSBuild-Aufgabe zu meinem BUILD Prozess mit den folgenden MSBuildArguments hinzugefügt

/p:OutDir=$(build.stagingDirectory) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true

und in meiner Aufgabe zum Kopieren/Veröffentlichen von Artefakten beschränkte ich meine Ausgabe auf das Kopieren von .zip-Dateien. Wenn ich nun in meinem RELEASE-Prozess nach einem "Web Deploy Package" suche, ist der Ordner "drop" leer.Hier ist ein Screenshot:

enter image description here

Ich glaube, ich auf dem richtigen Weg bin, ich brauche nur helfen, meine BUILD Aufgaben abzustimmen, herauszufinden, die richtigen Artefakte für meinen RELEASE Prozess zu erzeugen, zu nutzen. Jede Hilfe wäre willkommen.

Antwort

23

Das deploy Paket ist nicht auf Artefakte Ordner kopiert. Aus diesem Grund kann das Release-Management das Paket nicht finden. Die Einstellung "Build Artifacts Copy and Publish" in den folgenden Fällen sollte Ihr Problem beheben: VSTS Copy and Publish Artifacts drop build step

+1

Das hat funktioniert! Danke Eddie! – CodeAbundance

+0

Ich glaube, dass das Problem mit der Aufgabe ** Veröffentlichen Build Artifacts ** wurde behoben als 1/5/16. –

+0

@JoshuaDrake thanks !, Gibt es einen Link/Artikel über ihre Behebung? – password

4

Ändern Sie $(System.DefaultWorkingDirectory) zu $(Agent.ReleaseDirectory). Die Artefakte werden in diesen Ordner gelegt. Ich weiß nicht genau, was $(System.DefaultWorkingDirectory) zugeordnet ist, aber mein Eindruck ist, dass es etwas außerhalb des Ordners ist, den der Agent für Ihre Veröffentlichung verwendet.

Stellen Sie außerdem sicher, dass die veröffentlichten Artefakte die erwartete Zip-Datei enthalten - wenn das Bereitstellungspaket nicht erstellt wird oder wenn Sie den Ausgabeordner, der das Paket enthält, nicht veröffentlichen, können Sie das natürlich nicht um es später zu veröffentlichen.

Wenn Sie Ihre Webanwendung erstellen, stellen Sie sicher, dass sie für die Bereitstellung verpackt ist, indem Sie MSBuild-Argumente verwenden, die sie verpacken. So etwas sollte funktionieren:

/p:OutDir=$(build.stagingDirectory) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true

+0

Danke Daniel. Ich habe diese Änderung vorgenommen, und in beiden Fällen wurde der Pfad wie folgt aufgelöst: "C: \ a \ 4fe43dd1a \" - Ich habe dann den Dateiwähler neben dem Textfeld verwendet und konnte innerhalb des erstellten "drop" -Ordners durch mein Projekt navigieren durch meinen Build-Prozess. Ich denke ich muss nur den richtigen Weg zeigen, aber ich bin mir nicht sicher was. Ich habe versucht, es auf "$ (System.DefaultWorkingDirectory) \ Klassische Website-Definition \ drop \ ClassicWebsite" sowie "$ (System.DefaultWorkingDirectory) \ Klassische Website-Definition \ drop \ ClassicWebsite \ bin" zu zeigen, aber in beiden Fällen bekomme ich "Nein Gefundene Dateien für die Bereitstellung "aber die Projektdateien sind dort ... – CodeAbundance

+0

Ich habe meine Antwort bearbeitet, um den neuen Versuch anzuzeigen. – CodeAbundance

+0

Enthält der Ordner 'bin' tatsächlich die ZIP-Datei, die Sie bereitstellen möchten? –

Verwandte Themen