今天上午Edward同学问我一个问题:如何知道自己本机安装的.NET Framework版本呢?
以前这个问题我也遇到过,那就是在写自动部署程序的时候,如果客户的机器已经安装了.NET Framework就不再安装。作为安装包的制作者,自己应该是知道程序是用哪个版本.NET Framework编译的。目前.NET Framework的版本有1.1(基本上已经退出舞台)、2.0.50727、3.0和3.5。
如何获取它们呢?
方法一:通过Visual Studio 2008的菜单项“Help”来查看(有点无厘头的办法)
方法二:在Visual Studio 2008 Command Prompt(或者.NET SDK的命令行工具) 里输入csc,然后回车(依然很无厘头、没什么实用价值)
方法三:从注册表里查
注册表其实就是一个大型的“键-值对列表”(Key-Value Pair List)。注册表中的键是以树状层级结构记录的,所以图标看起来像是一个“文件夹”;一个键下,可以有“值”,而可以有再下一级的键。值是有数据类型的,比如字符串型、数字型;每个值都有自己的“Value Name”和“Value Data”。所以:
如果:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727键下Value Name为Install的值的Value Data等于1,则说明.NET Framework 2.0.50727已经安装。同理,检查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0键和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5键下的Install值的Value Data就知道是否安装了这两个版本。我估计,如果没有安装过3.0和3.5的话,这两个键是不会存在的,如果安装后又卸载了,键可能会在,Install的Value Data可能会是0。