2016-06-13 125 views
7

如何顯示project.json中的應用程序版本? 我使用gulp-bump來自動增加版本,但我無法顯示最近的版本。下面是我想:在ASP.NET MVC Core應用程序(RC2)中顯示項目版本

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

這是不行的,它顯示的「1.0.0」,而不是真正的價值從project.json

我也試過,但它看起來不再在RC2工作:

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

回答

16

this announcementIApplicationEnvironment不再存在。

,您仍然可以訪問ApplicationVersion靜態使用:

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

這對我的作品。我project.json看起來是這樣的:

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

而且在我的索引視圖,我在頂部以下行:

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

我在正確輸出得到1.0.0.2。當我更改該值並重新啓動(構建)應用程序時,新版本會顯示在那裏。

+2

對不起,我的問題不清楚enoguh:我已經在使用它,但它顯示1.0.0.0而不是預期的1.0.0.2 – vmg

+0

謝謝!你如何通過項目版本(自動)? – vmg

+0

我從來沒有使用'gulp-bump',所以不知道這是如何工作的。只需修改'project.json'中的版本並重建應用即可。 – poke

7

我使用了不同的方法,如this answer中所述,它給了我一個SemVer版本(1.0.0),它實際上在我的project.json中,而不是由接受的答案返回的1.0.0.0。因此,代碼是:

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

它返回正確的後綴版本爲好,即類似「2.0.1-DEV01」

6

由於Platform Abstractions were obly shipped with ASP.NET Core 1和已經從ASP.NET睿2及以上取出,這一個

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

:如果您在使用以上版本2,則必須更換該行

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

,如上一個鏈接頁面的「替換API使用情況」部分所述。

相關問題