Kopieren einer Datei im Ziel-Verzeichnis auf die Bereitstellung von visual studio team services
Bin ich mit VSTS, wie ein build-server, und zwar Bau ich wollen, kopieren Sie die bin-Ordner-Inhalt in den root des Ziel -, und auch die benutzerdefinierten Dateien aus einem anderen Ordner zu diesem Ziel. MSDN vermuten lässt benutze ich ein minimatch Muster, aber es ist das kopieren von Dateien mit Unterverzeichnis-Struktur. Ich bin nicht daran interessiert, in der Wiederherstellung der Struktur.
So bin ich zum Beispiel immer diese Ordner-Struktur:
Project
MyProjectFiles
bin
x86 (it's build configuration)
Project.exe
Other project files
Project.sln
SomeScrips
script1.ps1
Aber ich möchte diese Ordner-Struktur:
Project.exe
SomeScripts
script.ps1
Die minimatch Muster kann ich für meine Anforderungen?
Sind Sie mit XAML oder die neue web-basierte build-system?
neue web-basierte system
Keine Antworten nehmen nicht-triviale Szenarien (mehr als ein Projekt) in Rechnung zu stellen, außer vielleicht DotBerts'. Datei-und Ordner-handling in vNext baut ist wohl schlimmer als XAML, vor allem, wenn Sie möchten, Holen Sie das Artefakt aus $(build.Quellen)\setup\MyInstaller\bin\Release\myinstaller.msi-kopiert $(build.artifactstaging) Ordner (nicht $(build.artifactstaging)\setup\MyInstaller\bin\Release)
neue web-basierte system
Keine Antworten nehmen nicht-triviale Szenarien (mehr als ein Projekt) in Rechnung zu stellen, außer vielleicht DotBerts'. Datei-und Ordner-handling in vNext baut ist wohl schlimmer als XAML, vor allem, wenn Sie möchten, Holen Sie das Artefakt aus $(build.Quellen)\setup\MyInstaller\bin\Release\myinstaller.msi-kopiert $(build.artifactstaging) Ordner (nicht $(build.artifactstaging)\setup\MyInstaller\bin\Release)
InformationsquelleAutor Georgy Grigoryev | 2016-01-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit dem neuen web-basierten build-system Sie können mehrere Muster in einem einzigen Schritt. Daher können Sie etwas tun, wie dies für Ihren Fall:
Oder wenn Sie die build-Plattform und-Konfiguration in eine variable (zB.
BuildPlatform
/BuildConfiguration
), die Sie auch in den build-Schritt, könnten Sie in das Muster:Wenn Sie möchten, dass die
project.exe
werden in der Wurzel statt der Struktur, die Sie brauchen, um eineCopy Task
auf der Bühne Ihre Dateien in die gewünschte Struktur, die erste. Sie können$(Build.StagingDirectory)
als Ziel für diese. Danach verwenden Sie die Veröffentlichen Aufgabe mit$(Build.StagingDirectory)
als root kopieren und veröffentlichen alles, was von dieser Wurzel, um den drop.aber ich brauche nur Project\bin\x86\Release\project.exe
Nein, es ist immer noch das kopieren mit Ordner-Struktur
Aktualisiert den Antwort-how in der Restrukturierung-Dateien
Selbst wenn Sie eine $(Build.StagingDirectory), die Sie nicht verwenden können, die Verhaltensweisen, die du hier beschrieben.
InformationsquelleAutor Pascal Berger
Müssen Sie den root kopieren, wenn Sie kopieren wollen nur Dateien ohne Ordnerstruktur. Da die project.exe ist in einen anderen Pfad mit script.ps1-Datei, die Sie brauchen, um Sie zu kopieren in andere Kopie-Aufgabe.
Folgenden Schritte:
Nun sollte man die Dinge, die wie folgt im drop-Ordner:
Sorry für die Unannehmlichkeiten. Vergleich zu on-premise TFS und VSTS online-service, und verwenden Sie eine andere Version Modell, updates und Korrekturen werden kontinuierlich geliefert. Also der build Aufgaben wächst. Das ist, warum Sie nicht sehen, einige Aufgaben im TFS. Diese Aufgaben sind in TFS2015 Update2 RC2 jetzt: visualstudio.com/en-us/news/tfs2015-update2-vs.aspx. Übrigens, alle VSTS Aufgaben befinden sich auf GitHub, Sie können Sie herunterladen und laden Sie Sie in Ihr TFS-Server. Siehe diesen link github.com/Microsoft/vso-agent-tasks und hier: github.com/Microsoft/tfs-cli
Danke, das ist gut zu wissen. Leider kann ich nicht beeinflussen, aktualisieren von TFS (wir sind große und bürokratische genug gewidmet haben, TFS/ALM-admins und corporate Trägheit, wie Sie nicht glauben würden) aber immer die Aufgaben selbst könnte ein goer - war nicht in der Lage, Sie zu finden. Meist haben wir mithilfe von msbuild-Skripte, um Runde solche Probleme. Etwas unaufrichtig, zu behaupten, dass Sie können nicht die gleichen ci-und cd-Anwendungsfälle für die on-premise-als VS Online obwohl (viel wie ich VSO und es verwenden, für meine anderen client-Projekte).
Jeden Abend bevor ich zu Bett gehe, ich ziehe eine kleine statue von billg aus meinem Nachttisch und beten ein stilles Gebet, dass jemand ein "abflachen der Hierarchie" - option, um die Dateien zu Kopieren Aktion. Eine solche option wäre wieder viel zu weit in meine Welt. AFAICT, ich bin jetzt gezwungen, zu greifen, zu PowerShell für die Datei kopieren. CopyFiles sieht unfertig wie Sie ist.
Es ist schließlich gibt es mit dem neuen Build-Agenten, die mit TFS 2017 Update 1. Ich danke Ihnen für die Wiederherstellung meinen glauben.
InformationsquelleAutor Eddie Chen - MSFT
"Flatten Folders" - option in der "Advanced" Abschnitt "Kopieren von Dateien" Schritt.
Wenn Sie mit TFS Online (Visual Studio Online) und müssen nicht kopieren Sie die Ordner-Struktur verwenden "Flatten Folders" - option in der "Advanced" Abschnitt "Kopieren von Dateien" Schritt in die builddefinition
Wenn Sie mit TFS Online (Visual Studio Online) und müssen nicht kopieren Sie die Ordner-Struktur verwenden "Flatten Folders" - option in der "Advanced" Abschnitt "Kopieren von Dateien" Schritt in die builddefinition.
Dies ist jetzt in der on-prem version von TFS 2017, Update 1. Der Abschnitt "Erweitert" war zusammengebrochen und ich habe nicht einmal sehen auf den ersten. Aber siehe da, "Flatten Dateien" dort war.
InformationsquelleAutor igor_1024
Für diejenigen, die gerne ein PowerShell-Skript zu verwenden, in Ihrem build-server, hier ist eine funktionierende (zumindest auf meinem server zu bauen ;)) Beispiel:
Hier ist das Skript in einem PowerShell-build-Schritt:
Ich weiß, @GeorgyGrigoryev - das ist immer etwas zu prüfen. Dieser hat einen job und macht ihn gut, imho. Bitte fühlen Sie sich frei zum aufteilen der Datei in alles, was Sie mögen, oder noch besser, teilen Sie Ihre Lösung ;)...
Ja, aber ich habe aufgehört, zu zeigen, dass ich meine deploy script mit Ordner-Struktur und entledigte sich von diesem problem. Meine Lösung ist die Verwendung einer der oben genannten Antworten.
InformationsquelleAutor DotBert
Machen Artefakte von jeder Datei, die Sie kopieren möchten. Dann erstellen Sie eine Kopie der Datei' Aufgabe, jede Datei dieser Artefakte. Dann ist es nicht kopieren Sie die source-tree Struktur.
InformationsquelleAutor backyard hack mechanic
Mit TFS2017update1 und oben VSTS, könnte man einfach überprüfen Glätten Ordner unter Erweiterte option in Kopieren Von Dateien Aufgabe. Die einfachste Lösung für jetzt.
InformationsquelleAutor PatrickLu-MSFT