2016-06-13 12 views
7

Jak wyświetlić wersję aplikacji z pliku project.json? Używam automatycznej wersji gulp-bump, ale nie mogę wyświetlić najnowszej wersji. Oto, co usiłuję:Wyświetl wersję projektu w aplikacji ASP.NET MVC Core (RC2)

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

ten nie działa, wyświetla „1.0.0” zamiast rzeczywistej wartości od project.json

Próbowałem też to, ale wygląda na to, że nie jest już pracuje w RC2 :

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

Odpowiedz

16

Zgodnie this announcement, IApplicationEnvironment już nie istnieje.

Nadal można uzyskać dostęp do ApplicationVersion statycznie przy użyciu:

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

To działa na mnie. Moja project.json wygląda następująco:

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

I moim zdaniem indeksu, mam następujący wiersz na górze:

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

I właściwie dostać 1.0.0.2 na wyjściu. A kiedy zmienię tę wartość i uruchomię ponownie (kompilację) aplikację, pojawi się tam nowa wersja.

+2

Przepraszam, moje pytanie nie było jasne enoguh: już używam tego, ale wyświetla 1.0.0.0 zamiast oczekiwanych 1.0.0.2 – vmg

+0

dzięki! jak podbijasz wersję projektu (automatycznie)? – vmg

+0

Nigdy nie użyłem 'gulp-bump', więc nie mam pojęcia jak to działa. Powinno wystarczyć zmodyfikowanie wersji w pliku 'project.json' i przebudowanie aplikacji. – poke

7

Użyłem innego podejścia, jak podano w this answer, które dało mi wersję SemVer (1.0.0), która jest faktycznie w moim project.json, a nie 1.0.0.0, która jest zwracana przez zaakceptowaną odpowiedź. Więc kod byłoby:

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

Zwraca poprawne sufiksem wersje jak dobrze, to znaczy coś jak „2.0.1-dev01”

6

Od Platform Abstractions were obly shipped with ASP.NET Core 1 i został usunięty z ASP.NET Core 2 i wyżej, jeśli używasz wersji 2 lub wyższej, należy zastąpić ten wiersz:

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

z tego:

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

zgodnie z opisem w sekcji "Zastępowanie użycia API" na poprzedniej stronie z linkami.

Powiązane problemy