如何确定我的应用正在运行的.NET Core版本?
获取当前运行的.NET Core版本的实用方法
刚好我之前也碰到过这个问题——IHostingEnvironment(现在更推荐用IWebHostEnvironment或IHostEnvironment)主要负责管理应用的环境配置(比如开发/生产环境标识、内容根目录路径这类),确实拿不到.NET运行时的版本信息。下面给你几个在.NET Core(包括.NET 5+)里靠谱的实现方式:
使用
RuntimeInformation.FrameworkDescription
这是最直接也最推荐的方法,它会返回包含完整版本信息的描述字符串,比如.NET 6.0.10或者.NET Core 3.1.20,连具体的补丁版本都能看到。代码示例(可以在
Program.cs或Startup.cs里使用):using System.Runtime.InteropServices; // 在Program.cs的WebApplication构建完成后 var app = builder.Build(); var frameworkVersion = RuntimeInformation.FrameworkDescription; Console.WriteLine($"当前运行的.NET版本:{frameworkVersion}"); // 或者在Startup.cs的Configure方法中注入依赖后使用 public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { var frameworkVersion = RuntimeInformation.FrameworkDescription; // 可以将版本信息写入日志或用于其他业务逻辑 }使用
Environment.Version
这个属性返回的是当前CLR的版本对象,你可以通过它的Major、Minor、Build、Revision属性提取具体的版本号。不过要注意:在.NET Core 3.0及以后的版本中,它返回的是.NET Runtime的核心版本(比如.NET 6会返回6.0.x),没有FrameworkDescription的信息详细,但也能满足基础的版本获取需求。代码示例:
var clrVersion = Environment.Version; Console.WriteLine($"CLR版本:{clrVersion.Major}.{clrVersion.Minor}.{clrVersion.Build}.{clrVersion.Revision}");
内容的提问来源于stack exchange,提问作者Uros
相关产品推荐
相关产品推荐

