2016-09-22 5 views
11

Keiner von dem, was früher in RC.x verwendet wurde, hilft mehr.Projektversion in ASP.NET Core 1.0.0-Webanwendung anzeigen

Ich habe diese versucht:

  1. PlatformServices.Default.Application.ApplicationVersion;

  2. Typeof (Controller) .GetTypeInfo() Assembly.GetCustomAttribute <AssemblyFileVersionAttribute>() .Ausführung.

  3. Assembly.GetEntryAssembly(). GetName(). Version.ToString();

Sie alle 1.0.0.0 statt 1.0.0-9 zurück, die

Grundsätzlich in project.json: "version": "1.0.0-*" nach der Ausführung der dotnet publish --version-suffix 9 dies mit sein sollte, geben sie mir „Dateiversion“ aus dem beigefügten Bild statt " Produktversion "Die dotnet publish scheint sich tatsächlich zu ändern.

enter image description here

Antwort

18

Für Version 1.x:

Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion; 

Für die Version 2.0.0 dieses Attribut enthält etwas hässlich: 2.0.0 built by: dlab-DDVSOWINAGE041 so benutzen Sie diese ein:

typeof(RuntimeEnvironment).GetTypeInfo().Assembly.GetCustomAttribute<AssemblyFileVersionAttribute>().Version; 
+0

Danke, das ist sehr hilfreich. Warum das Kernteam von asp.net 1.0.0 nicht unterstützt hat. * Statt 1- * ist mir ein Rätsel. Die Versionsnummern für Microsoft .NET-Assemblys waren immer int.int.int.int und sind programmatisch sinnvoll. Das Unterstützen eines Strings in einem Build # ist nicht notwendig und führt zu anderen Problemen. – evermeire

+0

Verwenden Sie stattdessen System.Reflection.IntrospectionExtensions.GetTypeInfo ( typeof (ArmoredOutputStream) ) . Assembly.GetCustomAttribute (). Version; // Hinweis: Wo ArmoredOutputStream eine Klasse in der Assembly ist, deren Version Sie möchten –

+0

Die Bearbeitung ist irreführend und wahrscheinlich aufgrund einiger benutzerdefinierter Einstellungen vom Editor. Die richtige Antwort lautet Assembly.GetEntryAssembly(). GetCustomAttribute (). InformationalVersion FileVersion löscht die Vorabversions-Tags –

5

Diese Arbeit für ich auch:

@Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion 

Es funktioniert mit csproj-Datei - entweder < Version> 1.2.3.4 oder < VersionPrefix> 1.2.3 </VersionPrefix>. Die < VersionSuffix> wird jedoch nicht als this doc bezeichnet.

+6

Nein, diese Rückkehr 1.0.0.0 immer. –

+0

Es ist besser, Software. Funktioniert mit Projekteigenschaften. (VS 2017) – harveyt