论坛里面有人问,假设某Windows机器上已安装了.Net Framework 3.5,如何判断有没有安装.Net Framework 3.5 SP1?
这个问题,我首先想到,每一个版本的.Net Framework的安装过程都会在Windows目录下的\Microsoft.NET\Framework目录中生成一个子目录(安装目录)。比如说,假设Windows目录在C盘且不曾在安装OS时重命名过Windows目录,那么.Net Framework 3.5的安装目录应该是:
C:\Windows\Microsoft.NET\Framework\v3.5
为了提高命令的适应性我们用 %WINDIR% 来代替 C:\Windows ,然后我们在控制台中执行下列命令:
cd %WINDIR%\Microsoft.NET\Framework\v3.5 MSBuild /version
我的执行结果如下:
那么这个版本号 3.5.30729.5420 能否说明我们有没有安装.Net 3.5 SP1呢?我们查看这个地址:
What .NET Framework version numbers go with what service pack
http://blogs.msdn.com/b/astebner/archive/2005/07/12/438245.aspx
从这个列表中,我们可以看到,我们实际的版本号 3.5.30729.5420 应该是不小于.Net 3.5 SP1 的。
这是判断方法之一。
还有一种判断方法是从注册表来判断。在命令行中运行regedit,搜索“Net Framework Setup”:
这样我们就可以搜到这样的一个路径:
从这个搜索结果来看,我们能够在这个路径下看到我们安装过各个版本的 .Net Framework 的“芳踪”:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\
看样子遍历这个路径下的sub path就能够得到所有已安装的.Net Framework的版本信息。
在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 这个路径下,我们可以看到,版本(Version)是 3.5.30729.5420,与我们前面的判断方法结果一致。SP这一项的键值是 1,意思是已安装 SP1。
参考文献: