I need to determine the highest .NET framework version installed on a desktop machine from C\C++ code. Looks like I can iterate the folders under %systemroot%\Microsoft.NET\Framework, but that seems kind of error prone. Is there a better way? Perhaps a registry key I can inspect? Thanks.
-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
Is that what you're looking for?
Charles : Yes, HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP should be a little easier. Looks like I'll have to iterate the subkeys and then query the Version value. Thanks. -
Registry keys for the .Net Framework start like that:
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\
Depending on the version, the rest of the key will be different (check this page).
You can look how to access the registry in this msdn article: Using the registry in a C++ application.
-
The following is suppose to give you the answer, but it seems horribly broken :(
c:\Program Files>clrver Versions installed on the machine: v2.0.50727James Curran : The CLR version is not necessarily the same as the .Net version. .Net v2.0 updated the CLR over v1.1, but .Net v3.0 & v3.5 did not change the CLR, so it remains "V2.0.50727" -
If you're trying to do this from managed code, take a look at this article, which wraps all of the logic needed to determine if a specific Framework version is installed.
Otherwise, take a look at Aaron's blog post here, which gives a C/C++ method for doing the same thing.
Daniel Daranas : Unfortunately, no article can be found in your first link.Scott Dorman : @Daniel Daranas: Thanks for letting me know. Code Project moved the article since this was originally answered. I've updated the answer to the correct link.
0 comments:
Post a Comment