C# 如何检索产品版本?
有没有办法检索ASP.NET 5 web应用程序的产品版本 这是我的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
项目中的内容。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);
});
}