Process process = new Process
{
StartInfo = new ProcessStartInfo()
{
Arguments = "--version",
CreateNoWindow = true,
FileName = "dotnet",
RedirectStandardOutput = true
}
};
process.Start();
process.WaitForExit();
var version = process.StandardOutput.ReadToEnd().Trim();
var configuration = new ConfigurationBuilder()
.AddJsonFile("project.json").Build();
return configuration.GetValue<string>("dependencies:Microsoft.NETCore.App:version");
如果想要的是 .net Core Runtime ( CoreRT 本机工具链),代码如下:
如果想要的是.net core的版本, .net core 其实就是一堆类库,是以包的形式发布的。就像我们将项目中的package引用修改后,就从RC1变成RC2了。所以只需要确定引用包的版本就可以了,下面的代码检测.net core版本,而不是ASP.NET Core版本
下面这种方式不可用的原因是,它检查的是程序集的版本,而不是包的版本,两者可能相同也可能不同。
最新版应该是1.0.0-preview1-002702,这个要翻源码了,没看到有介绍的。
可以通过