Einstellen der Versionsnummer .NET-Core-Projekte
Was sind die Optionen für die Einstellung der Projekt-version mit .NET Core /ASP.NET Core-Projekte?
Bisher gefunden:
-
Legen Sie die
version
Eigenschaft inproject.json
. Quelle: DNX-Übersicht, Arbeiten mit DNX-Projekte. Dieser Satz scheint dieAssemblyVersion
,AssemblyFileVersion
undAssemblyInformationalVersion
sofern diese nicht durch ein Attribut (siehe nächsten Punkt). -
Einstellung der
AssemblyVersion
,AssemblyFileVersion
,AssemblyInformationalVersion
Attribute, die auch zu funktionieren scheint, und überschreiben Sie denversion
- Eigenschaft angegeben wird, inproject.json
.Beispielsweise inklusive
'version':'4.1.1-*'
improject.json
und Einstellung[assembly:AssemblyFileVersion("4.3.5.0")]
im.cs
- Datei führtAssemblyVersion=4.1.1.0
,AssemblyInformationalVersion=4.1.1.0
undAssemblyFileVersion=4.3.5.0
Ist die Einstellung der Versionsnummer über Attribute, z.B. AssemblyFileVersion
noch unterstützt?
Habe ich was verpasst - gibt es andere Möglichkeiten?
Kontext
Dem Szenario, das ich bin, looking at ist mit einer gemeinsamen Versionsnummer zwischen mehreren Projekten. Einige der Projekte verwenden .NET Core (Projekt.json), die anderen den vollen .NET Framework (.csproj). Alle sind logisch Teil eines einzigen Systems und versioniert zusammen.
Die Strategie, die wir bis jetzt haben ist eine SharedAssemblyInfo.cs
- Datei an die Wurzel unserer Lösung mit der AssemblyVersion
und AssemblyFileVersion
Attribute. Die Projekte beinhalten einen link auf die Datei.
Ich bin auf der Suche nach Möglichkeiten, um das gleiche Ergebnis erzielen mit .NET-Core-Projekte, D. H. Sie haben eine einzige Datei zu ändern.
- Das ist gut für Sie 😉
- Quelle links sind nicht mehr darauf an, nichts.
- Aktualisiert link zur DNX Überblick: dotnet.today/en/aspnet5-vnext/dnx/overview.html
- Danke, @ArthurStankevich, aber der link ist nicht up-to-date mit dem aktuellen Zustand .NET Core. DNX entfernt wurde .NET Core und .NET-CLI sollte stattdessen verwendet werden. Migrationshandbuch. Das hat keinen Einfluss auf die Versionsverwaltung, obwohl. Das sagte, ich sollte aktualisieren Sie die Frage.
- Sie könnten dotnet-bump
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weitere option für die Einstellung der version info beim Aufruf
build
oderpublish
ist die Verwendung des undokumentierten/p
option.dotnet
Befehl intern übergibt diese flags auf MSBuild.Beispiel:
Weitere Informationen finden Sie hier: https://github.com/dotnet/docs/issues/7568
Warum nicht ändern Sie einfach den Wert in das Projekt.json-Datei. Mit CakeBuild Sie könnte so etwas tun (Optimierungen wohl möglich)
Dann, wenn Sie z.B. ein UnitTest-Projekt, das eine Abhängigkeit auf das Projekt, verwenden Sie "*" für die Auflösung von Abhängigkeiten.
Außerdem tun die Beule, bevor Sie
dotnet restore
. Meine Reihenfolge ist wie folgt:Link zum vollständigen build-Skript: https://github.com/danielwertheim/Ensure.That/blob/3a278f05d940d9994f0fde9266c6f2c41900a884/build.cake
Den tatsächlichen Werten, die z.B. die
version
kommt vom Import über eine separatebuild.config
- Datei in das build-Skript:Die config-Datei sieht wie folgt aus (entnommen aus https://github.com/danielwertheim/Ensure.That/blob/3a278f05d940d9994f0fde9266c6f2c41900a884/buildconfig.cake):
Wenn Sie immer noch wollen, um die Lösung zu Level
SharedVersionInfo.cs
Sie können es durch hinzufügen der folgenden Zeilen, um Ihreproject.json
Datei:Ihre relative Pfad kann variieren, natürlich.
Nicht sicher, ob das hilft, aber Sie können die set-version Suffixe veröffentlichen Zeit. Unsere Versionen sind in der Regel datetime getrieben, so dass Entwickler müssen nicht daran denken, Sie zu aktualisieren.
Wenn Ihr json-hat so etwas wie "1.0-*"
"dotnet veröffentlichen --version-suffix 2016.01.02" wird es "1.0-2016.01.02".
Es ist wichtig zu bleiben "semvar" standards, sonst bekommst du Fehler. Dotnet veröffentlichen, werden Sie sagen.
AssemblyInformationalVersion
und nicht ändernAssemblyFileVersion
oderAssemblyVersion
.externe verwenden version.txt Datei mit der version, und fertige Schritt zu veröffentlichen, diese version in Projekten