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

时间:2010-02-10 16:58:39

标签: .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

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

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

7 个答案:

答案 0 :(得分:21)

reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP" /s /v version | findstr /i version | sort /+26 /r

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

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

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

答案 1 :(得分:9)

根据您的更新,这表明这是通过它走过非技术精明的最终用户,我建议去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 }

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

答案 2 :(得分:9)

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

答案 3 :(得分:0)

编辑:我的答案与OP问题(我最初回答后编辑)无关。

根据MSDN,您也可以使用注册表来检查已安装的版本。

此外,this网站声称有一个名为csc的命令行应用程序,您可以使用 - 虽然没有尝试过,我在运行的安装过程中使用了注册表方式。

答案 4 :(得分:0)

CodeProject上发布了一篇文章,可以完全基于其命令行。

希望这有帮助。

答案 5 :(得分:0)

以下将检测是否安装了.net framework 3.5 ..如果没有安装将安装它。只需在命令提示符下运行它。

if exist "%WINDIR%\Microsoft.Net\Framework\v3.5" goto end start /wait .\Framework\dotnetfx.exe /q /norestart" :end 

如果要检测其他版本,请根据具体情况将v3.5替换为v2.0或v1.0。此外,如果未检测到.net,则.net框架的安装将以静默模式完成,即无ui或用户交互。

答案 6 :(得分:-2)

该目录列表中的最高版本号是已安装的版本。

如您所见,任何版本都包含所有以前的版本,因此请检查特定版本的支持=检查该特定目录。