2008-10-08 11 views
12

Ich muss die höchste .NET-Framework-Version ermitteln, die auf einem Desktopcomputer aus C/C++ - Code installiert ist. Sieht so aus, als könnte ich die Ordner unter %systemroot%\Microsoft.NET\Framework iterieren, aber das scheint irgendwie fehleranfällig zu sein. Gibt es einen besseren Weg? Vielleicht kann ich einen Registrierungsschlüssel überprüfen? Vielen Dank.Ermitteln der höchsten .NET Framework-Version

Antwort

10

Verwenden Sie die Windows Registry Position HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP.

+0

Ja, HKLM \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP sho Es wird ein bisschen leichter sein. Sieht so aus, als müsste ich die Unterschlüssel wiederholen und dann den Versionswert abfragen. Vielen Dank. – Charles

6

Registrierungsschlüssel für das .NET Framework starten wie folgt aus:

HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\ 

Je nach Ausführung, der Rest des Schlüssels wird anders sein (this page überprüfen).

Sie können nachschlagen, wie Sie auf die Registrierung im MSDN-Artikel Using the registry in a C++ application zugreifen können.

0

Im folgenden soll Ihnen die Antwort geben, aber es scheint schrecklich gebrochen :(

c:\Program Files>clrver 
Versions installed on the machine: 
v2.0.50727 
+5

Die CLR-Version stimmt nicht unbedingt mit der .Net-Version überein. .Net v2.0 aktualisierte die CLR über v1.1, aber .Net v3.0 & v3.5 änderte die CLR nicht, also bleibt es "V2.0.50727" –

5

Wenn Sie versuchen, diese von den verwalteten Code zu tun, werfen Sie einen Blick auf diese article, die alle hüllt der Logik-Version installiert ist, um zu bestimmen, ob eine bestimmte Rahmen benötigt.

Ansonsten Blog-Post here, die für die gleiche Sache eine C/C++ Methode gibt einen Blick auf Aarons nehmen.

Verwandte Themen