这里也提出了类似的问题,但这是针对。net 3.5的。具体来说,我正在寻找以下:
确定安装了哪些.NET Framework版本和服务包的正确方法是什么? 是否有可以使用的注册表项列表? 框架版本之间是否存在依赖关系?
这里也提出了类似的问题,但这是针对。net 3.5的。具体来说,我正在寻找以下:
确定安装了哪些.NET Framework版本和服务包的正确方法是什么? 是否有可以使用的注册表项列表? 框架版本之间是否存在依赖关系?
当前回答
使用Signum。SignumFramework的实用程序库(你可以单独使用),你可以很好地获得它,而不用自己处理注册表:
AboutTools.FrameworkVersions().ToConsole();
//Writes in my machine:
//v2.0.50727 SP2
//v3.0 SP2
//v3.5 SP1
其他回答
更新。net 4.5.1
现在. net 4.5.1可用了,需要检查注册表中名为Release的键的实际值,而不仅仅是它是否存在。值为378758表示安装了. net Framework 4.5.1。但是,在Windows 8.1上,这个值是378675。
有一个可用的GUI工具,ASoft . net Version Detector,它一直被证明是高度可靠的。它可以通过在命令行上指定XML输出的文件名来创建XML文件。
您可以将其用于自动化。这是一个很小的程序,用非编程语言编写的。NET依赖语言,不需要安装。
我想检测系统上是否安装了。net 4.5.2版本,我发现没有比ASoft . net version Detector更好的解决方案了。
该工具的快照显示了不同的.NET版本:
我需要找出我电脑上的。net框架的版本,我所做的就是打开控制面板,选择“卸载程序”选项。之后,我把程序按名称分类,找到了Microsoft . net Framework 4客户端配置文件。
列举HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP的子键。每个子键都是一个。net版本。如果它存在于机器上,则它应该具有Install=1值,如果使用MSI安装,则它应该具有显示服务包的SP值和MSI=1值。(.例如,Windows Vista上的NET 2.0没有最后一个,因为它是操作系统的一部分。)