有没有办法从命令行确定.NET Framework版本?

Noa*_*oah 28 .net windows command-line .net-framework-version

要对安装进行故障排除,有时我只想快速回答安装的.NET版本.

有没有办法在标准Windows系统上确定.NET Framework版本,而不是查看目录?

注意: 这不适用于开发机器,只适用于开箱即用的窗口

以下工作,但我正在寻找一种更简单的方法.

dir%WINDIR%\ Microsoft.Net\Framework\v*

Directory of C:\Windows\Microsoft.Net\Framework

07/13/2009  07:20 PM    <DIR>          v1.0.3705
07/13/2009  07:20 PM    <DIR>          v1.1.4322
01/20/2010  01:16 PM    <DIR>          v2.0.50727
07/13/2009  09:37 PM    <DIR>          v3.0
01/20/2010  01:02 PM    <DIR>          v3.5
02/10/2010  03:20 AM    <DIR>          v4.0.21006
Run Code Online (Sandbox Code Playgroud)

更新:不是解决方案,而是另一个很酷的目录格式化列表

dir%WINDIR%\ Microsoft.Net\Framework\v*/O:-N/B.

v4.0.21006
v3.5
v3.0
v2.0.50727
v1.1.4322
v1.0.3705
Run Code Online (Sandbox Code Playgroud)

Fra*_*nov 22

reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP" /s /v version | findstr /i version | sort /+26 /r
Run Code Online (Sandbox Code Playgroud)

顶部条目是安装的框架的最新版本.

注意:这不适用于框架的v1.x.

更新:我错过了你正在寻找通过电话告诉你爸爸的评论.如果是这种情况,上面的命令可能不是最好的方法.你可能最好只是告诉你的父亲打开Windows资源管理器并导航他到.NET Framework目录并告诉你那里的数字.


Jos*_*osh 10

根据您的更新,这表明这是通过它走过一个非技术精明的最终用户,我建议去Scott Hanselman的网站http://www.smallestdotnet.com(使用Internet Explorer),它使用用户代理字符串告诉你你有哪些.NET Framework,并为你提供了以最有效的方式获得最新版本的建议.

旧的答案
使用PowerShell你可以做到这一点(虽然PowerShell的存在已经暗示至少.NET 2.0)

Get-ChildItem "$($Env:WinDir)\Microsoft.Net\Framework" -i mscorlib.dll -r |
    ForEach-Object { $_.VersionInfo.ProductVersion }
Run Code Online (Sandbox Code Playgroud)

我不知道是否有类似的方法来获取普通老式crdy cmd.exe中的版本信息.


Dav*_*ave 9

只需打开VS2008命令提示符并键入clrver

  • 感谢在帖子更新后的反对票,我在提出答案的时候没有这些信息. (4认同)
  • 我真的认为downvotes应该花费更多的代表(并且在你自己获得某个代表之后变得自由),这样就可以为那些完全错误的答案保留downvotes.这个答案不保证是一个downvote. (3认同)