2010-06-27 64 views
2

我想检查机器上是否安装了.Net 2.0或更高版本。我想以一种新版本发布的方式检查旧代码的工作原理。由于代码是C++,因此注册表检查非常理想。如何从注册表中检查.NET的版本?

+0

[This SO SO Answer](http://stackoverflow.com/questions/199080/how-to-detect-what-net-framework-versions-and-service-packs-are-installed/199783#199783)会告诉你你需要检查哪些注册表项。 – 2010-06-27 04:44:37

回答

3

本博客文章应该有你需要的所有信息:http://blogs.msdn.com/b/astebner/archive/2007/11/29/6608419.aspx

+0

没有帮助,因为他们检查每个版本2,3.5或4的条目。 – Rohit 2010-06-27 01:46:56

+0

@Rohit:此检查的目的是什么? – 2010-06-27 01:48:55

+0

确保安装2.0或更高版本作为先决条件。 – Rohit 2010-06-27 03:29:49

0

阅读您的问题毫不夸张地说,我会建议一个引导程序它执行检查,然后启动你的.NET应用程序。

为什么?因为如果.Net应用程序依赖于特定的.Net版本(例如3.0),并且机器上仅安装了v2.0,则您的应用程序将崩溃。如果您有本机引导程序.exe,那么您可以使用WinAPI检查注册表(已有数千个示例),然后启动您的.Net应用程序。

另一种方法是使用仅依赖于.Net 2.0的引导程序进行检查 - 目前该版本相当普遍,正确​​打补丁和更新的机器不具备该功能的几率相当小(如果它的机会更大是一台WinXP之前的机器)。更高版本的.Net框架与v2.0是向后兼容的(尽管我不确定4.0 CP框架的缩减性质是否仍然与v2.0完全兼容)。