2017-02-11 4 views
2

Ich verwende die neuesten (Stand: heute) .NET Core Tools. Dort geben Sie die Version in einer <Version> MSBuild-Eigenschaft an. Im Gegensatz zu [assembly: AssemblyVersion] scheint dies jedoch keine Platzhalter zu unterstützen. Wie mache ich die Versionsinkremente automatisch auf die gleiche Weise?Wie wird die Version automatisch in den neuesten .NET Core-Werkzeugen inkrementiert?

Erklären, warum dies eine schlechte Idee ist und was stattdessen getan werden sollte, wäre auch eine gute Antwort.

Antwort

0

Die Version-Eigenschaft in MSBuild unterstützt keine Sternchen (Wildcard) -Format wie project.json tat.

Mit MSBuild können Sie jedoch eine Version auf andere Arten berechnen. Es gibt keinen richtigen Weg, dies zu tun, aber hier ist ein Ansatz. Wir verwenden stattdessen "VersionPrefix". Microsoft.NET.ddk wird auch automatisch VersionPrefix und VersionSuffix kombinieren, um den endgültigen Wert von "Version" zu bilden.

In-Datei:

<PropertyGroup> 
    <VersionPrefix>2.0.0</VersionPrefix> 
</PropertyGroup> 

Auf Build-Server:

msbuild.exe /t:Pack /p:VersionSuffix=build0

// or, the dotnet.exe equivalent 
dotnet pack --version-suffix build0

Ergebnis:

AssemblyVersion = 2.0.0.0 
Package version = 2.0.0-build0

Unser Build-Server generiert die Build-Nummer auf jedem Lauf.

Wenn Sie das Oldtimer-AssemblyVersion-Sternchen-Formular verwenden möchten, können Sie die <AssemblyVersion> -Eigenschaft explizit in MSBuild festlegen. Wenn nicht, wird standardmäßig der Wert major.minor.patch <Version> angezeigt.

Weitere Details:

Es gibt ein halbes Dutzend "Version" Einstellungen in Microsoft.NET.Sdk. Weitere Informationen finden Sie unter What is the difference between various MSBuild version properties, such as Version, VersionPrefix, and VersionSuffix?.

Verwandte Themen