在ASP.NET MVC核心应用程序(RC2)中显示项目版本

vmg*_*vmg 16 c# asp.net-mvc asp.net-core .net-core-rc2

如何从project.json显示应用程序版本?我正在使用gulp-bump自动增量版本,但我无法显示最新版本.这是我正在尝试的:

@(Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion)
Run Code Online (Sandbox Code Playgroud)

这不起作用,它显示" 1.0.0"而不是真正的价值project.json

我也尝试了这个但看起来它不再适用于RC2:

@inject Microsoft.Extensions.PlatformAbstractions.IApplicationEnvironment appEnv
My version number is @(appEnv.ApplicationVersion)
Run Code Online (Sandbox Code Playgroud)

pok*_*oke 20

根据此公告,IApplicationEnvironment不再存在.

您仍然可以使用以下ApplicationVersion方式静态访问:

Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
Run Code Online (Sandbox Code Playgroud)

这个对我有用.我project.json看起来像这样:

{
    "version": "1.0.0.2",
    // all the rest
}
Run Code Online (Sandbox Code Playgroud)

在我的索引视图中,我在顶部有以下行:

@Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
Run Code Online (Sandbox Code Playgroud)

我正确地进入1.0.0.2了输出.当我更改该值并重新启动(构建)应用程序时,会显示新版本.

  • 抱歉,我的问题不明确enoguh:我已经在使用它,但它显示1.0.0.0而不是预期的1.0.0.2 (3认同)

Luc*_*uca 17

由于Platform Abstractions与ASP.NET Core 1一起提供,并且已从ASP.NET Core 2及更高版本中删除,因此如果您使用的是版本2或更高版本,则必须替换此行:

Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
Run Code Online (Sandbox Code Playgroud)

这一个:

System.Reflection.Assembly.GetEntryAssembly().GetName().Version
Run Code Online (Sandbox Code Playgroud)

在上一个链接页面的"替换API用法"部分中指定.


Ily*_*nin 11

我使用了一种不同的方法,如本回答中所述,它给了我一个SemVer版本(1.0.0),它实际上在我的project.json而不是1.0.0.0中,由接受的答案返回.所以代码是:

var runtimeVersion = typeof(Startup)
            .GetTypeInfo()
            .Assembly
            .GetCustomAttribute<AssemblyInformationalVersionAttribute>()
            .InformationalVersion;
Run Code Online (Sandbox Code Playgroud)

它也会返回正确的后缀版本,例如"2.0.1-dev01"


sab*_*our 7

这对我来说适用于.NET Core 2.0.5。

码:

var assemblyVersion = System.Reflection.Assembly.GetEntryAssembly().GetCustomAttribute<System.Reflection..AssemblyInformationalVersionAttribute>().InformationalVersion;
Console.WriteLine(assemblyVersion);
Run Code Online (Sandbox Code Playgroud)

myproject.csproj

<PropertyGroup>
    <VersionPrefix>1.0.0.1</VersionPrefix>
    <VersionSuffix>alpha</VersionSuffix>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

输出

1.0.0.1-alpha
Run Code Online (Sandbox Code Playgroud)

  • 您也可以简单地使用&lt;Version&gt; 1.0.0.1-alpha &lt;/ Version&gt;。 (3认同)