2010-06-27 68 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完全兼容)。