当前位置:  开发笔记 > 运维 > 正文

是否有命令行命令用于验证安装的.NET版本

如何解决《是否有命令行命令用于验证安装的.NET版本》经验,为你挑选了4个好方法。

我有一组用于执行脚本安装的脚本.您可以在任何服务器2008计算机上使用这些脚本.但是,我需要使用dos批处理文件检查是否已安装.NET 3.5(在脚本运行之前).那可能吗?

我知道我可以检查文件是否C:\WINDOWS\Microsoft.NET\Framework\v3.5存在,但是让某些东西更可靠会更好.

我想检查它是否实际安装,而不仅仅是目录/文件是否存在.

谢谢



1> Amit Naidu..:

既然你说你想知道它是否实际安装,我认为最好的方法(缺少运行版本特定的代码),就是检查令人放心的名为"Install"的注册表项.0x1表示是:

C:\>reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5"| findstr Install

   Install     REG_DWORD       0x1
   InstallPath REG_SZ  c:\WINNT\Microsoft.NET\Framework\v3.5\

这也恰好是"微软推荐"的官方方法.

WMI是另一种可能性,但似乎不切实际(慢?我的C2D,SSD需要2分钟).也许它在您的服务器上运行得更好:

C:\>wmic product where "Name like 'Microsoft .Net%'" get Name, Version

Name                                                Version
Microsoft .NET Compact Framework 1.0 SP3 Developer  1.0.4292
Microsoft .NET Framework 3.0 Service Pack 2         3.2.30729
Microsoft .NET Framework 3.5 SP1                    3.5.30729
Microsoft .NET Compact Framework 2.0                2.0.5238
Microsoft .NET Framework 4 Client Profile           4.0.30319
Microsoft .NET Framework 4 Multi-Targeting Pack     4.0.30319
Microsoft .NET Framework 2.0 Service Pack 2         2.2.30729
Microsoft .NET Framework 1.1                        1.1.4322
Microsoft .NET Framework 4 Extended                 4.0.30319

C:\>wmic product where "name like 'Microsoft .N%' and version='3.5.30729'" get name

Name  
Microsoft .NET Framework 3.5 SP1

除了这些,我认为100%确定的唯一方法是实际运行一个针对您的框架版本编译的简单控制台应用程序.就个人而言,我认为这是不必要的,并且信任注册表方法就好了.

最后,您可以设置一个可从服务器访问的Intranet测试站点,并嗅探用户代理以确定.NET版本.但这当然不是批处理文件解决方案.另见doc.


此方法不显示GAC的所有.NET Framework版本.在我的情况下只有4.0:*Microsoft .NET Framework 4 Multi-Targeting Pack 4.0.30319*,*Microsoft .NET Framework 4 Extended 4.0.30320*,*Microsoft .NET Framework 4 Client Profile 4.0.30320*.虽然也安装了2.0.50727,3.0.30729.5420,3.5.30729.5420版本.
@GuidoLeenders更好``reg query"HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"/ v Version`

2> 小智..:

你的意思是DOS命令如下所示将显示已安装的.NET框架:

wmic /namespace:\\root\cimv2 path win32_product where "name like '%%.NET%%'" get version

然后可以显示以下内容:

Version
4.0.30319

一旦掌握了它,WMIC就非常有用,比根据你想要实现的目标在脚本中编码WMI要容易得多.


我逐字尝试了这个命令,但它只是挂在那里冻结而没有回应
什么是.NET 4.5?

3> Andrew Hare..:

不幸的是,最好的方法是检查该目录.我不确定你的意思,但"实际安装"因为.NET 3.5使用与.NET 3.0和.NET 2.0相同的CLR所以所有新功能都包含在该目录中的新程序集中.基本上,如果目录在那里,则安装3.5.

我唯一想补充的是以这种方式找到dir以获得最大的灵活性:

%windir%\Microsoft.NET\Framework\v3.5


这种简单的目录检查不再适用于检测版本..NET Framework 4.5没有v4.5目录-http://stackoverflow.com/questions/12070518/where-is-the-net-framework-4-5-directory
谢谢您的帮助.我认为检查目录会很好.另外,感谢关​​于使用%windir%的提醒

4> ajma..:

您可以自己编写一个控制台应用程序并使用System.Environment.Version来查找版本.Scott Hanselman发表了一篇关于它的博文.

或者在注册表中查找已安装的版本.HKLM\Software\Microsoft\NETFramework Setup\NDP

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有