2008-10-08 37 views
12

Devo determinare la versione di framework .NET più alta installata su un computer desktop dal codice C \ C++. Sembra che io possa iterare le cartelle sotto %systemroot%\Microsoft.NET\Framework, ma sembra un tipo di errore incline. C'è un modo migliore? Forse una chiave di registro che posso ispezionare? Grazie.Determinare la versione più alta di .NET Framework

risposta

10

Utilizzare la posizione Windows RegistryHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP.

+0

Sì, HKLM \ SOFTWARE Impostazione Microsoft \ NET Framework \ NDP sho Sarebbe un po 'più facile. Sembra che dovrò iterare le sottochiavi e quindi interrogare il valore della versione. Grazie. – Charles

6

chiavi del Registro di sistema per .NET Framework inizia così:

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

A seconda della versione, il resto della chiave sarà diverso (check this page).

È possibile cercare come accedere al registro nell'articolo MSDN Using the registry in a C++ application.

0

Il seguente è supposto per dare la risposta, ma sembra orribilmente rotto :(

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

La versione CLR non è necessariamente uguale alla versione .Net. .Net v2.0 ha aggiornato CLR su v1.1, ma .Net v3.0 e v3.5 non ha modificato il CLR, quindi rimane "V2.0.50727" –

5

Se si sta cercando di fare questo da codice gestito, dare un'occhiata a questo article, che avvolge tutto della logica necessaria per determinare se è installata una versione quadro specifico.

in caso contrario, dare un'occhiata al post sul blog di Aaron here, che dà un metodo di C/C++ per fare la stessa cosa.