2016-06-13 25 views
7

Come visualizzare la versione dell'applicazione da project.json? Sto usando gulp-bump per la versione autoincrement, ma non posso mostrare la versione recente. Qui è quello che sto cercando:Visualizzazione della versione del progetto nell'applicazione ASP.NET MVC Core (RC2)

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

Questo non funziona, viene visualizzato "1.0.0" al posto di un valore reale dal project.json

Ho provato anche questo, ma sembra che non sia più funziona in RC2 :

@inject Microsoft.Extensions.PlatformAbstractions.IApplicationEnvironment appEnv 
My version number is @(appEnv.ApplicationVersion) 

risposta

16

Come da this announcement, IApplicationEnvironment non esiste più.

È ancora possibile accedere al ApplicationVersion utilizzando staticamente:

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

Funziona per me. Il mio project.json assomiglia a questo:

{ 
    "version": "1.0.0.2", 
    // all the rest 
} 

E a mio avviso indice, ho la seguente riga in alto:

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

E io correttamente ottenere 1.0.0.2 nell'output. E quando cambio quel valore e riavvia (costruisci) l'applicazione, qui viene mostrata la nuova versione.

+2

scusate, la mia domanda non era chiara enoguh: lo sto già usando, ma visualizza 1.0.0.0 invece del previsto 1.0.0.2 – vmg

+0

grazie! come si esegue il bump della versione del progetto (automaticamente)? – vmg

+0

Non ho mai usato 'gulp-bump', quindi non ho idea di come funzioni. Dovrebbe essere sufficiente modificare semplicemente la versione in 'project.json' e ricostruire l'app. – poke

7

Ho utilizzato un approccio diverso, come indicato in this answer che mi ha fornito una versione SemVer (1.0.0) che è in realtà nel mio project.json e non 1.0.0.0, che viene restituita dalla risposta accettata. Quindi il codice sarebbe:

var runtimeVersion = typeof(Startup) 
      .GetTypeInfo() 
      .Assembly 
      .GetCustomAttribute<AssemblyInformationalVersionAttribute>() 
      .InformationalVersion; 

restituisce versioni corrette suffisso così, vale a dire qualcosa come "2.0.1-dev01"

6

Dal Platform Abstractions were obly shipped with ASP.NET Core 1 ed è stato rimosso da ASP.NET Core 2 e fino, se si sta utilizzando la versione 2 o superiore, è necessario sostituire questa riga:

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

con questo:

System.Reflection.Assembly.GetEntryAssembly().GetName().Version 

come specificato nella sezione "Sostituzione dell'utilizzo dell'API" della pagina collegata precedente.