Versionierungsdemos
Beispiele für Möglichkeiten zur Versionierung von .NET Core-Projekten mit und ohne Continuous Deployment (CD)
Wenn Sie diese Site klonen und lokal im Debug- und Release-Modus ausführen, werden unterschiedliche Ergebnisse angezeigt. Sie können eine Live-Version unter https://versioningdemos.azurewebsites.net/ besuchen. Diese wurde durch mein Git und VSTS geleitet, um die Versionsinformationen zu generieren.
Sie werden feststellen, dass Microsoft in seinen eigenen .Net-Bibliotheken unterschiedliche Versionsstrategien verfolgt, die vermutlich nicht von denselben Teams stammen.
Es gibt im Allgemeinen drei Versionen, auf die in einer .NET Core-Assembly verwiesen wird
- Dateiversion – Dies wird verwendet, um zu sehen, welche DLL aktuell ist.
- Es hat das Muster xybr, das normalerweise als Major.Minor.Build.Revision angesehen wird
- Produktversion – innerhalb der Assembly auch als InformationalVersion bezeichnet. Dies ist eine Freitextversion, die zu beschreibenden Zwecken verwendet wird.
- Derzeit folgt das Format tendenziell dem Muster der semantischen Versionierung (vorgeschlagen von GitHub).
- xyp-buildinfo Major.Minor.Patch[-metadata]
- Weitere Informationen finden Sie unter semver.org
- Assembly-Version – die Version der Assembly
Die normale Methode zum Abrufen von Versionsinformationen funktioniert nur für einige Anwendungsfälle und versagt, wenn sie in einer Bibliothek platziert wird.
Versionsbeispielprojekte
Alle diese Projekte verwenden die .vbproj-Dateien (könnte auch .csproj sein) anstelle der vorherigen Techniken, die AssemblyInfo.cs oder project.json verwendeten
Nichts festgelegt – Standard
Einen Wert festlegen – Manuell
Verwenden der Visual Studio-Benutzeroberfläche (Projekteigenschaften/Paket)
- Auch wenn Sie dies nicht zum Festlegen der Informationen verwenden, werden die berechneten Werte angezeigt
- Achten Sie darauf, dass Sie nicht versehentlich an anderer Stelle berechnete Werte überschreiben
- Bearbeiten von
.csproj
Alle Werte festlegen - Manual.AllDifferent
- Verwenden der Visual Studio-Benutzeroberfläche
- Bearbeiten von
.csproj
Verwenden Sie einfach VersionPrefix - VersionPrefix
VersionSuffix – VersionSuffix
BuildRevision – BuildRevision
- Replizieren Sie Build- und Revisionsplatzhalter, indem Sie die Versionsmusterlogik von Roslyn implementieren
- Verwendet Berechnungen in der csproj-Datei
BuildDateTime – BuildDateTime
- x.YYYY.MDD.HHMM wurde verwendet, um automatisierte Werte zu erstellen
Visual Studio Team Services-Build – VSTS
- Fügen Sie die konfigurierte BUILDNUMBER von VSTS zu VersionSuffix hinzu
Visual Studio Team Services-Build mit Git-Zweig – VSTS.WithGit
- Fügen Sie auch den Git-Zweig zum Versionssuffix hinzu
TagHelfer
Bei der Verwendung von Taghelpern gibt es mehrere Fallstricke.
- Seiten werden am Ende in anderen Baugruppen platziert, als Sie vielleicht erwarten
- Die Ausführung in Debug oder Release kann zu unterschiedlichen Werten und erstellten Assemblys führen
- Das Einfügen eines TagHelper in eine externe Bibliothek ändert das Ergebnis der aktuell ausgeführten Assembly