使用 PowerShell 获取 CLR 版本号

使用 PowerShell 获取 CLR 版本号

2017-09-27 16:24

在我之前写的一篇文章.NET Framework 4.x 程序到底运行在哪个 CLR 版本之上中,我们说到 CLR 版本和 .NET Framework 基础库之间是有差别的,其版本号更是有差别的。不过其中并没有给出方法获取 CLR 的版本号。本文将给出几种方便的获取 CLR 版本号的方法。


写代码获取

.NET Framework 的 System.Environment 类型的 Version 属性直接可以获取到版本号。于是只需要简单写一个控制台程序即可获取。

Console.WriteLine($"{Environment.Version}");

以上只写关键的一行,其他类啊、Main 函数啊、Console.ReadKey 的都自行脑补即可。因为这不是本文重点。

在我的 Windows 10 创造者更新 1703 上得到的结果是:4.0.30319.42000

用 PowerShell 获取

考虑到 PowerShell 可以直接使用到 .NET Framework 中的类型,于是上面的代码很容易直接翻译成 PowerShell 脚本:

PS C:\Users\lvyi> [Environment]::Version

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      30319  42000

上面的第一行是脚本,后面全是输出,本文之后的 PowerShell 代码部分都是这样。

可以看到,虽然格式不同,但依然拿到了跟我们写代码一模一样的结果。

本文只是一个引子,你可以拿着 PowerShell 去调用其他 .NET Framework 的类和方法,根本不需要打开 Visual Studio 编译,非常方便!

不过既然是 PowerShell,那就有更多可以尝试的方法,比如说直接拿 PowerShell 的全局变量:

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 即可:

PS C:\Users\lvyi> $PSVersionTable.CLRVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      30319  42000

本文会经常更新,请阅读原文: https://walterlv.com/post/powershell/2017/09/28/get-clr-version-via-powershell.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (walter.lv@qq.com)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

[紧急通告]Microsoft Word RTF文件解析错误代码执行0day漏洞

Microsoft Word在解析畸形的RTF格式数据时存在错误导致内存破坏,使得攻击者能够执行任意代码。当用户使用Microsoft Word受影响的版本打开...

223100
来自专栏葡萄城控件技术团队

ASP.NET 5系列教程 (一):领读新特性

近期微软发布了ASP.NET 5.0,本次发布的新特性需求源于大量用户的反馈和需求,例如灵活的跨平台运行时和自主部署能力使ASP.NET应用不再受限于IIS、C...

21780
来自专栏张善友的专栏

Visual Studio 2008 SP1和.NET FX 3.5 SP1发布了

NET Framework 3.5 SP1提供了以下新功能和改进: 1、ASP.NET 动态数据,它提供了丰富的框架,从而使用户可以快速进行数据驱动的开发,而...

18380
来自专栏逸鹏说道

Microsoft 安全公告摘要(2015 年 10 月)

Microsoft 安全公告摘要(2015 年 10 月) 10(共 16)对本文的评价是有帮助 - 评价此主题 发布日期:2015 年 10 月 13 日 |...

28770
来自专栏张善友的专栏

WPF/Silverlight中的Command

这里所讨论的Command就是设计模式中的Command模式:命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式...

20050
来自专栏农夫安全

CVE-2017-11882漏洞复现

0x00 前言 参考backlion师傅的PDF,记录一下这个过程。 2017年11月14日,微软发布了11月份的安全补丁更新,其中比较引人关注...

38580
来自专栏安恒信息

微软2018年3月补丁更新的安全漏洞预警

1.漏洞公告 2018年3月13日,微软发布了本月安全更新补丁,其中包含一个CredSSP远程代码执行漏洞的补丁更新,对应CVE编号:CVE-2018-0886...

74780
来自专栏walterlv - 吕毅的博客

使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题

发布于 2018-07-21 13:51 更新于 2018-07...

30010
来自专栏张善友的专栏

SignalR 0.5 发布了

SignalR 是一个集成的客户端与服务器库,基于浏览器的客户端和基于 ASP.NET 的服务器组件可以借助它来进行双向多步对话。 换句话说,该对话可不受限制地...

20150
来自专栏walterlv - 吕毅的博客

MSBuild/Roslyn 和 NuGet 的 100 个坑

发布于 2018-07-04 13:29 更新于 2018-09...

21220

扫码关注云+社区

领取腾讯云代金券