2017-09-08 9 views
1

Ich möchte eine semantisch versionierte nupkg nach ci-Prozess auf TFS erstellen. Das nupkg sollte wie folgt aussehen.bearbeiten nuspec Datei in nupkg

MSVersioningSample.1.0.7-ci-20170926-184446.nupkg

Aber, wenn ich beschlossen, eine Release-Version. Ich möchte nupgk umbenennen und es als Versionsversion in nuget feed veröffentlichen.

MSVersioningSample.1.0.7.nupkg

Wenn ich nupkg Datei umbenennen und veröffentlichen, bleiben seine Versionsnummer noch gleich und Konflikt tritt während veröffentlichen.

Dann erkannte ich. Es gibt eine .nuspec-Datei in der nupkg-Datei und ich muss die Versionsnummer in der nuspec-Datei ändern.

Meine Frage ist, wie konnte ich Nuspec Datei in Nupkg mit (Powershell) Skript bearbeiten?

Antwort

1

Scheint, dass Sie die Vorabversionen nupkg verwenden möchten, aber entfernen Sie die Vorabversion, wenn Sie bereit sind, sie zu veröffentlichen. Sie müssen das Element <version> in der Datei nuspec neu schreiben. Aber es ist nicht so einfach, mit allen Situationen umzugehen, zum Beispiel wenn dein Build mehrere Pakete produziert, von denen einige voneinander abhängig sind? Jetzt müssen Sie auch den Abhängigkeitsgraphen entdecken und die entsprechenden Elemente neu schreiben.

Um die Versionen Feld in der ‚* .nuspec‘ Datei zu aktualisieren, können Sie diesen Powershell-Skript in GitHub Referenz: Nuspec Auto Update

Eine andere Problemumgehung zwei nuget Verpackungsschritte ist das Hinzufügen Prozess zu bauen. Ein Paket mit der -ci Nummer und eins nicht.

Dann müssen Sie nur sicherstellen, dass nur die ‚Freisetzung‘ Paket ArtifactStagingDirectory kopieren, die bereits nicht prelease Segment hat

Auch Ihre Freigabe so einrichten, dass es die Build-Nummer als Freigabenamen verwenden . Ein kleines Problem, das die - ci Nummer enthält.

Verwandte Themen