C# 如何检索产品版本?

C# 如何检索产品版本?,c#,asp.net-core,versioning,asp.net-core-mvc,C#,Asp.net Core,Versioning,Asp.net Core Mvc,有没有办法检索ASP.NET 5 web应用程序的产品版本 这是我的项目中的内容。json: "version": "4.0.0-alpha1" 我怎样才能从应用程序中检索到它?我以前可以在较旧的ASP.NET版本上执行此操作: System.Reflection.Assembly.GetExecutingAssembly().GetName().Version 然而,现在它总是给我0.0.0.0。有什么想法吗?如果您还没有,请在project.json文件中添加对System.Reflec

有没有办法检索ASP.NET 5 web应用程序的产品版本

这是我的
项目中的内容。json

"version": "4.0.0-alpha1"
我怎样才能从应用程序中检索到它?我以前可以在较旧的ASP.NET版本上执行此操作:

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

然而,现在它总是给我
0.0.0.0
。有什么想法吗?

如果您还没有,请在project.json文件中添加对
System.Reflection
的引用。

然后,您可以从
InformationalVersion
属性中获取值

私有静态字符串GetRuntimeVersion()=>
类型(SomeClassInYourAssembly)
.GetTypeInfo()
装配
.GetCustomAttribute()
.信息版本;

将IApplicationEnvironment注入任何需要版本的地方。例如,在Startup类的Configure方法中:

       public void Configure(IApplicationBuilder app, 
        IApplicationEnvironment applicationEnvironment)
    {
        app.UseIISPlatformHandler();

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync(applicationEnvironment.ApplicationVersion);
        });
    }

来源:“启动时可用的服务”

这不是正确的方法。请考虑我的回答,这也适用于非ASP应用程序,如控制台应用程序。然而,我更喜欢从
assembly.GetEntryAssembly()
获取汇编,而不是
typeof(…).GetTypeInfo().assembly
jesus christ,在一周的搜索之后。这适用于.NETCore1.1。谢谢使用
iaapplicationenvironment
或从中复制实现您所说的是什么版本?这个答案是用RC1给出的。对于RC1,我的答案给出了project.json中指定的版本。它甚至在IntelliSense中这样说:“获取project.json文件中指定的应用程序版本”。有了RTM,IApplicationEnvironment甚至不再存在,您必须使用IHostingEnvironment()。你的否决票是不必要的。问题是
IHostingEnvironment
没有
ApplicationVersion
成员。我知道。但同样,这是RC1的答案。如果您想知道如何使用RTM,请提出一个新问题。或者,当出现新版本时,是否要求人们重新审视自己的答案?请让我知道,然后我确定我会停止回答。
       public void Configure(IApplicationBuilder app, 
        IApplicationEnvironment applicationEnvironment)
    {
        app.UseIISPlatformHandler();

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync(applicationEnvironment.ApplicationVersion);
        });
    }