2010-02-10 135 views
28

要解决安装问题,有时我只想快速回答安装.NET的版本。有没有从命令行确定.NET Framework版本的方法?

有没有一种方法可以确定标准Windows系统上的.NET Framework版本,而不是查看目录?

注:这不是一个开发机器,只是出的现成的窗口

下面的作品,但我正在寻找一个简单的方法。

DIR%WINDIR%\ Microsoft.Net \框架\ 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 

UPDATE:不是一个解决方案,但另一个很酷的目录格式的房源

DIR%WINDIR%\微软。 NET \框架\ v */O:-N/B

v4.0.21006 
v3.5 
v3.0 
v2.0.50727 
v1.1.4322 
v1.0.3705 
+1

你想如何使用这些信息?在脚本中?否则,我不知道什么会比'dir'简单 – 2010-02-10 17:03:12

+0

这是为了支持;我试图帮助我的年长的父亲;只需要让一个较老的非电脑人员通过电话键入“dir%WINDIR%\ Microsoft.Net \ Framework \ v *”即可。 这就是让我开始思考,必须有一个更好的办法 – Noah 2010-02-10 17:12:42

+0

时间你爸爸的计算机上安装CrossLoop的! :) – Dave 2010-02-10 17:15:58

回答

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 } 

我不知道是否有一个比较的方式来获得版本信息在普通老式硬壳cmd.exe中。

0

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

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

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

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

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

:这并不与框架的版本1.x工作。

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

+0

这可以通过网络上的机器完成吗? IMO这是最好的答案,因为它提供了 “补丁” 的版本像4.5和4.5.1 – BlackICE 2014-03-14 12:28:26

+1

网络版很简单: REG查询 “\\ \ HKLM \ SOFTWARE \微软\ NET Framework安装\ NDP”/ S/V版本| findstr/i版本|排序/ + 26 – BlackICE 2014-03-14 12:33:09

9

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

+0

最终用户机器不会有VS2008。 – Joe 2010-02-10 17:16:17

+4

感谢负面评论后,我的信息更新了当时我没有提供的信息。 – Dave 2010-02-10 17:23:29

+3

我真的认为降薪应该花费更多代表(并且在你自己取得某个代表后自由),这样降薪会被保留给那些只是错误的答案。这个答案不保证一个downvote。 – Josh 2010-02-10 17:34:18

0

有张贴在CodeProject的文章,可以做到基于刚才正是加上其命令行。

希望这会有所帮助。

-2

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

正如你所看到的,任何版本包括所有以前的版本,所以检查支持的特定版本=检查特定目录。如果.NET Framework 3.5的安装或不

+1

“任何版本都包含所有以前的版本” - 不,它不。例如,v2.0不包含1.0。 – 2010-02-10 17:38:31

+0

@Igor呃什么?如果你有2.0并不是所有的1.0应用程序都运行? – Joshua 2010-02-10 20:47:46

+0

的问题是关于* *安装.NET Framework的版本,并且我没有说下框架V2.0运行1.0版应用 – 2010-02-10 21:25:06

0

下将检测..如果不安装将安装它。只需在命令提示符下运行该命令。

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框架的安装将以静默模式完成,即没有用户或用户交互。

相关问题