Paket liegt in der version 1.0.0 immer mit dotnet-pack
TLDR: Wo ist dotnet pack
ziehen Sie die version Informationen, wenn es schafft das nuget-Paket für eine Montage?
Habe ich eine Bibliothek, das hatte ich ja umgestellt, von einem .NET 4.6.1 Projekt ein .NET-Core-Projekt mit project.json
. Für mein CI während dieser Zeit (mit TFS 2015 vnext), ich würde meine version-Nummer, und ersetzen Sie die Versionsnummer in das Projekt.json-Datei mit der neuen version. Die dotnet pack
Befehl wählen Sie die version hoch, und erstellen Sie ein neues Paket mit der aktualisierten Versionsnummer.
Letzte Woche, ich habe ein Upgrade von TFS 2015-TFS 2017. Stellt sich heraus, Projekt.json wurde ersetzt mit einer neuen .csproj-Datei. Ich habe aktualisiert mein CI. Während meiner CI - update ich meine /Properties/AssemblyInfo.cs
- Datei, ersetzen der AssemblyVersion
tag mit der version für das aktuelle build. Dann Baue ich die Lösung - die baut gerade fein. Dann habe ich Paket die Lösung.
Jedoch, trotz der AssemblyVersion
und AssemblyFileVersion
gesetzt AssemblyInfo.cs
auf die richtige build-Nummer - dotnet pack
wird noch produziert .nupkg Dateien *.1.0.0.nupkg
.
Was bin ich?
Hier ist mein pack-Befehl:
dotnet pack $projectFile -o $currentDirectory
- Ist das nur
<PackageVersion>value</PackageVersion>
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
dotnet pack
version gezogen von der Projekt-definition (bisherproject.json
jetzt*.csproj
), nichtAssemblyInfo.cs
. So, den neuen workflow sehr ähnlich, was es war mitproject.json
.Aus der Projekt.json zu csproj migration docs, können Sie die
VersionPrefix
undVersionSuffix
Eigenschaften.Bevor:
Nun:
Können Sie auch die einzelnen
Version
Eigentum, aber die docs warnen, dass dies "möglicherweise überschreiben-version-Einstellungen während der Verpackung".dotnet pack
ist super einfach.Besser noch, geben Sie
/p:Version=$(Build.BuildNumber)
(TFS/VSTS) auf der dotnet-pack-Befehl und es werden bauen, es mit der angegebenen version in den nuget-Paket.Beispiel (nicht spezifische TFS):
Beispiel (TFS spezifisch) <- wir verwenden diese für unsere TFS-2017 Verpackung mit einem powershell-Skript Schritt.
Hinweis: Es werden keine update-Paket Referenz-Versionen.
<Version>
oder<VersionPrefix>
Werte in Ihrem*.csproj
- Datei. Ansonsten haben diese Vorrang, was auch immer Sie geben in der Befehlszeile.ANMERKUNG: ich verstehe diese Frage nicht speziell über VSTS/Azure Dev Ops, aber eine Suche nach, wie dies zu tun auf einem build-pipeline landet hier so hinzufügen, was für mich gearbeitet
-p:Version=1.0.$(Build.BuildId) -o $(Build.ArtifactStagingDirectory)
- O-argument ist erforderlich, wenn die Aufgabe nach der Verpackung gehen zu schieben, um einen feed (ist nicht das, warum würde man das erstellen von Paketen?)