在我之前写的一篇文章.NET Framework 4.x 程序到底运行在哪个 CLR 版本之上中,我们说到 CLR 版本和 .NET Framework 基础库之间是有差别的,其版本号更是有差别的。不过其中并没有给出方法获取 CLR 的版本号。本文将给出几种方便的获取 CLR 版本号的方法。
写代码获取
.NET Framework 的 System.Environment
类型的 Version
属性直接可以获取到版本号。于是只需要简单写一个控制台程序即可获取。
1
Console.WriteLine($"{Environment.Version}");
以上只写关键的一行,其他类啊、Main
函数啊、Console.ReadKey
的都自行脑补即可。因为这不是本文重点。
在我的 Windows 10 创造者更新 1703 上得到的结果是:4.0.30319.42000
。
用 PowerShell 获取
考虑到 PowerShell 可以直接使用到 .NET Framework 中的类型,于是上面的代码很容易直接翻译成 PowerShell 脚本:
1
2
3
4
5
PS C:\Users\lvyi> [Environment]::Version
Major Minor Build Revision
----- ----- ----- --------
4 0 30319 42000
上面的第一行是脚本,后面全是输出,本文之后的 PowerShell 代码部分都是这样。
可以看到,虽然格式不同,但依然拿到了跟我们写代码一模一样的结果。
本文只是一个引子,你可以拿着 PowerShell 去调用其他 .NET Framework 的类和方法,根本不需要打开 Visual Studio 编译,非常方便!
不过既然是 PowerShell,那就有更多可以尝试的方法,比如说直接拿 PowerShell 的全局变量:
1
2
3
4
5
6
7
8
9
10
11
12
PS C:\Users\lvyi> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.15063.608
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.15063.608
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
如果觉得杂乱项太多,直接取里面的 CLRVersion
即可:
1
2
3
4
5
PS C:\Users\lvyi> $PSVersionTable.CLRVersion
Major Minor Build Revision
----- ----- ----- --------
4 0 30319 42000
本文会经常更新,请阅读原文: https://blog.walterlv.com/post/powershell/2017/09/28/get-clr-version-via-powershell.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 ([email protected]) 。