Come trovo la versione .NET?


258

Come faccio a sapere quale versione di .NET è installata?

Sto cercando qualcosa di semplice come "java -version" che posso digitare al prompt dei comandi e che mi dice le versioni correnti installate.

Aggiungo che Visual Studio potrebbe non essere installato, in genere è qualcosa che voglio sapere su un computer client.


2
Vai a eseguire ed esegui questo comando: wmic / namespace: \\ root \ cimv2 percorso win32_product dove "name like '%%. NET %%'" ottiene la versione
HENG Vongkol


Risposte:


250

Digita uno dei comandi seguenti per darti l'ultima versione nella prima riga.

1. CSC
2. GACUTIL /l ?
3. CLRVER

Puoi eseguirli solo dal prompt dei comandi di Visual Studio se hai installato Visual Studio oppure se hai .NET Framework SDK, quindi il prompt dei comandi SDK.

4. wmic product get description | findstr /C:".NET Framework"
5. dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

L'ultimo comando (5) elencherà tutte le versioni (tranne 4.5) di .NET installate, prima le ultime .
È necessario eseguire il quarto comando per vedere se .NET 4.5 è installato.

Altre tre opzioni dal prompt dei comandi di PowerShell sono riportate di seguito.

6.   [environment]::Version
7.   $PSVersionTable.CLRVersion
8.   gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 |
     where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release

L'ultimo comando (8) ti darà tutte le versioni, incluso .NET 4.5.


6
'CSC' funzionerà solo dal prompt dei comandi di Visual Studio (per impostazione predefinita). Fornirà anche solo la versione massima del framework .NET quella versione delle destinazioni del compilatore. - Se hai installato VS2005 e VS2008, le diverse versioni di CSC segnaleranno versioni diverse.
Matt Lacey,

15
cscgenera la versione del compilatore C #, non la versione di .NET Framework.
Timwi,

4
l'ultimo comando non ha restituito la versione 4.5 anche se penso di averlo installato. La risposta su stackoverflow.com/questions/3487265/… l'ha inclusa.
lmsurprenant,

2
L'ultimo comando non mostra l'ultima versione. Possiamo anche cercare la versione in appwiz.cpl o il comando 'wmic product' è utile. windows-commandline.com/find-net-version-on-your-computer
Giri

11
Saluti per il numero 8!
Lionet Chen,

330

C'è un modo più semplice per ottenere la versione esatta della versione .NET installata sul tuo computer da un prompt cmd. Basta seguire le seguenti istruzioni;

  1. Apri il prompt dei comandi (es. Windows + R → digita "cmd").
  2. Digita il seguente comando, tutto su una riga:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"

(Questo elencherà tutte le versioni .NET.)

  1. Se vuoi controllare l'ultima versione di .NET 4.
  2. Digitare le seguenti istruzioni, su una sola riga:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version

Si prega di trovare l'immagine allegata di seguito per vedere come viene mostrato.

Inserisci qui la descrizione dell'immagine


4
trovato questo per essere il più semplice e preciso (con "* \ v4 \ Full" alla fine) in quanto ottiene anche la versione minore con un solo semplice comando.
Ignas Vyšnia,

1
Bello. Volevo qualcosa che potesse funzionare su un PC degli utenti e questo è tutto. Grazie!
Kelly,

Dettagli ed esempi completi
typpo

6
Bello ma non mostra i framework 4.5, 4.6 e 4.7 che sono installati sul mio computer Windows 7 :(
Zeek2

non abbastanza preciso; Guardo in Pannello di controllo> Programmi e funzionalità e non vi è alcun segno di .NET .; tuttavia, eseguo il tuo comando e mi dà l'output HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4.0. Probabilmente, .NET è stato installato sul mio computer, non è stato installato, ma il registro non è stato pulito
Newton fan 01


30

Prima di accedere a un prompt dei comandi, seguire questi passaggi ...

Apri Risorse del computer → doppio clic sull'unità " C: " → doppio clic su " Windows " → doppio clic su " Microsoft.NET " → doppio clic su " Framework " → All'interno di questa cartella, ci saranno cartelle come "v1.0.3705" e / o "v2.0.50727" e / o "v3.5" e / o "v4.0.30319".

L'ultima versione di .NET sarebbe nella cartella con il numero v più alto, quindi se è disponibile v4.0.30319 conterrà l'ultimo framework .NET. Tuttavia, v4.0.30319 non significa che si dispone di .NET Framework versione 4.0. La v4.0.30319 è la versione del compilatore di Visual C #, pertanto, per trovare la versione di .NET framework, procedere come segue.

Vai a un prompt dei comandi e segui questo percorso:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (o qualunque sia la cartella con il numero v più alto)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> csc.exe

Produzione:

Compilatore Microsoft (R) Visual C # versione 4.0.30319.17929 per Microsoft (R) .NET Framework 4.5 Copyright (C) Microsoft Corporation. Tutti i diritti riservati.

Esempio sotto:

Inserisci qui la descrizione dell'immagine


2
Abbastanza buono, ma l'output è diverso almeno sul mio server - Nessun messaggio "per" è stato incluso: lh4.googleusercontent.com/-p7Fu5GDj0cg/UywSqPTdQjI/AAAAAAAAALQ/…
Nenotlep

2
per cambiare il tipo di directory : cd C:\Windows\Microsoft.NET\Framework\v4.0.30319e quindi digitare csc.exe, la speranza aiuta qualcuno.
Shaijut,

1
È soprattutto efficiente quando si accede da un account utente limitato.
Rzassar,

10

Questa risposta è applicabile solo a .NET Core!

Digitando dotnet --versionil terminale scelto, verrà stampata la versione di .NET Core SDK in uso.

Ulteriori informazioni sul dotnetcomando qui .


15
È applicabile solo a .NET Core.
Sunil,

9

Per la versione del framework installata, varia a seconda dei service pack e degli hotfix installati. Dai un'occhiata a questa pagina MSDN per maggiori dettagli. Suggerisce di cercare %systemroot%\Microsoft.NET\Frameworkper ottenere la versione.

Environment.Version ti fornirà a livello di codice la versione di CLR.

Nota che questa è la versione del CLR e non necessariamente la stessa dell'ultima versione del framework che hai installato (.NET 3.0 e 3.5 usano entrambi v2 del CLR).


Environment.Version sembra darti la versione dell'applicazione. Ad esempio, da LinqPad voglio trovare la versione .NET su cui è in esecuzione e non mi dà la versione .NET, ma la versione LinqPad
Naomi

@Naomi: no, fornisce la versione del CLR. Dai documenti: "Ottiene un oggetto Versione che descrive i numeri maggiore, minore, build e revisione del runtime di linguaggio comune." .
adrianbanks,

Cosa dovrei vedere in questo oggetto? Sto vedendo 2.0.50727.5472 2 Minori 0 Build 50727 Revisione 5472 MajorRevision 0 MinorRevision 5472 che non mi sembra la versione di runtime di CLR
Naomi

Ho caricato l'ultima versione di LinqPad e ora sto ottenendo 4.0.30319.18052 per la versione. La versione precedente era destinata alla versione .NET 3.5. Quindi, sono ancora un po 'confuso - mostra davvero la versione CLR?
Naomi,

1
@Naomi: Sì, mostra la versione CLR. 2.0.50727.5472 è la versione di .Net 2.0 CLR, utilizzata anche per .Net 3.0 e 3.5. 4.0.30319.18052 è .Net 4.0, che ha un numero di versione diverso.
adrianbanks,

8

MSDN lo descrive qui molto bene su come controllarlo dal registro:

Per trovare le versioni di .NET Framework visualizzando il registro (.NET Framework 1-4)

  1. Nel menu Start, scegli Esegui.
  2. Nella casella Apri, immettere regedit.exe. È necessario disporre delle credenziali amministrative per eseguire regedit.exe.
  3. Nell'editor del Registro di sistema, aprire la seguente sottochiave:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP

Le versioni installate sono elencate nella sottochiave NDP. Il numero di versione è memorizzato nella voce Versione. Per .NET Framework 4 la voce Versione si trova nella sottochiave Client o Full (in NDP) o in entrambe le sottochiavi.

Per trovare le versioni di .NET Framework visualizzando il registro (.NET Framework 4.5 e versioni successive)

  1. Nel menu Start, scegli Esegui.
  2. Nella casella Apri, immettere regedit.exe. È necessario disporre delle credenziali amministrative per eseguire regedit.exe.
  3. Nell'editor del Registro di sistema, aprire la seguente sottochiave:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full

Si noti che il percorso della sottochiave Full include la sottochiave Net Framework anziché .NET Framework

Cerca un valore DWORD denominato Release. L'esistenza di Release DWORD indica che .NET Framework 4.5 o versioni successive sono state installate su quel computer.

inserisci qui la descrizione dell'immagine

Nota : l'ultima riga dell'istantanea sopra che ha ottenuto le letture ritagliate On all other OS versions: 461310. Ho fatto del mio meglio per evitare che le informazioni venissero troncate mentre facevo lo screenshot ma il tavolo era troppo grande.


6

Se si apre un prompt dei comandi e si digitano i seguenti due comandi, verranno elencate tutte le versioni del framework installate sul computer corrente (ognuna è memorizzata in una directory separata all'interno di questa directory).

cd %systemroot%\Microsoft.NET\Framework

dir /A:D

8
Sconsigliato perché potrebbe essere fuorviante. Se hai aggiornato 4.0 => 4.5.2, la directory potrebbe mostrare solo v4.0.30319. Vedi l'esempio di Sunimal Kaluarachchi.
Dinah,

6

Basta digitare quanto segue nella riga di comando:

dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

La tua versione dotnet verrà mostrata come il numero più alto.


1
Visualizza tutte le versioni fino alla 4.0, ma ad esempio non 4.5.
Pinowthebird,

4

Per ottenere solo le versioni installate dalla riga di comando, ti consiglio di usare net-version .

  • È solo un singolo binario .
  • Utilizza le linee guida fornite dalla mia Microsoft per ottenere informazioni sulla versione.
  • Non richiede l'installazione dell'SDK.
  • O il prompt dei comandi di Visual Studio.
  • Non richiede l'utilizzo di regedit e la ricerca delle chiavi di registro da soli. È anche possibile reindirizzare l'output in uno strumento da riga di comando, se necessario.

Il codice sorgente è disponibile su github.com

Divulgazione completa: ho creato questo strumento da solo per frustrazione.


Se quel set (incompleto) di informazioni sulla versione è abbastanza buono per te, più potenza per te.
Dan Esparza,

@Shiva Indichi che pensi che quel comando mostri tutto, e io sono rispettosamente in disaccordo con te. Guarda il link con le linee guida fornite da Microsoft. Ad esempio: la tua query non mostra che ho installato .NET 4.6.1. Inoltre, indica che ho 'CDF' installato, che non è una versione di .NET framework.
Dan Esparza,

4

Se lo fai abbastanza frequentemente (come io tendo a fare) puoi creare un collegamento sul desktop come segue:

  1. Fare clic con il tasto destro sul desktop e selezionare NuovoCollegamento .
  2. Nel campo della posizione, incolla questa stringa: powershell.exe -noexit -command "gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 | where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release"(questo è dal post di Binoj Antony ).
  3. Premi Avanti . Assegna un nome e Fine al collegamento .

(NOTA: non sono sicuro che funzioni per 4.5, ma posso confermare che funziona per 4.6 e versioni precedenti alla 4.5.)


Le versioni 1.0 e 1.1 non vengono visualizzate nella chiave di installazione di NET Framework , sebbene esistano nella cartella% systemroot% \ Microsoft.NET \ Framework \.
samis,

4

Ecco lo script di Power Shell che ho usato prendendo il riferimento di:

https://stackoverflow.com/a/3495491/148657

$Lookup = @{
    378389 = [version]'4.5'
    378675 = [version]'4.5.1'
    378758 = [version]'4.5.1'
    379893 = [version]'4.5.2'
    393295 = [version]'4.6'
    393297 = [version]'4.6'
    394254 = [version]'4.6.1'
    394271 = [version]'4.6.1'
    394802 = [version]'4.6.2'
    394806 = [version]'4.6.2'
    460798 = [version]'4.7'
    460805 = [version]'4.7'
    461308 = [version]'4.7.1'
    461310 = [version]'4.7.1'
    461808 = [version]'4.7.2'
    461814 = [version]'4.7.2'
    528040 = [version]'4.8'
    528049 = [version]'4.8'
}

# For One True framework (latest .NET 4x), change the Where-Oject match 
# to PSChildName -eq "Full":
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
  Get-ItemProperty -name Version, Release -EA 0 |
  Where-Object { $_.PSChildName -match '^(?!S)\p{L}'} |
  Select-Object @{name = ".NET Framework"; expression = {$_.PSChildName}}, 
@{name = "Product"; expression = {$Lookup[$_.Release]}}, 
Version, Release

Lo script sopra fa uso del registro e ci fornisce il numero di aggiornamento di Windows insieme a .Net Framework installato su una macchina.

Riferimento: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#to-find-net-framework-versions-by- interrogazione-la-registry-in-codice-net-quadro-45-e-dopo

Ecco i risultati per lo stesso quando si esegue quello script su due macchine diverse

  1. Dove .NET 4.7.2 era già installato:

inserisci qui la descrizione dell'immagine

  1. Dove .NET 4.7.2 non è stato installato:

inserisci qui la descrizione dell'immagine


3

Mio Dio, così tanto casino per trovare la versione del framework .net installato?

Windows> Cerca> Visual Studio Installer> per la versione installata di VS, toccare Altro> Modifica> Componenti individuali e vederlo lì:

inserisci qui la descrizione dell'immagine



1

clrverè eccellente. Basta eseguirlo nel prompt di .NET ed elencherà tutte le versioni del framework disponibili.


3
Questo strumento richiede non solo l'installazione di .NET framework, ma Visual Studio. L'OP ha indicato che Visual Studio potrebbe non essere installato.
Dan Esparza,

E non mostra tutte (o addirittura la maggior parte) le versioni. Per il mio PC Win7 è mostrato solo V2.0 e 4.0 ma alcuni degli altri metodi sopra mostrano anche le versioni: 3.0, 3.5, 4.5, 4.5.1, 4.5.2, 4.6.1 e 4.7.
Zeek2,

1
@Zeek clrvermostra i runtime installati .net , che possono essere condivisi tra le versioni .net . Vedere Procedura: determinare quali versioni di .NET Framework sono installate e identificare la versione di .NET in esecuzione (2.0, 4.5, 4.5.1 o 4.5.2)
samis

1

Per chiunque esegua Windows 10 1607 e cerchi .net 4.7 . Ignora tutto quanto sopra.

Non si trova nel registro , nella cartella C: \ Windows \ Microsoft.NET o nell'elenco Programmi installati o nella visualizzazione WMIC dello stesso elenco.

Cerca "aggiornamenti installati" KB3186568.


1
È nel registro, come documentato da Microsoft . HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full- il Releasevalore sarà 4607984.7 su W10 1607.
Richard Deeming

Non è. Il tasto "Full" non esiste nemmeno.
skrie,

1
Lo è e lo fa. Sto correndo il 1607 e sto guardando la Fullchiave in questo momento!
Richard Deeming,


0

Se stai sviluppando qualche app .Net (per es. App web), puoi creare 1 riga di codice di errore (come invocare un nome di funzione errato) e ricaricare la tua pagina, verrà mostrata la versione .Netinserisci qui la descrizione dell'immagine


Probabilmente non è il modo più pulito, ma in effetti un'opzione di cui mi ero completamente dimenticato. Un semplice GACUTIL /l ?nel tuo (sviluppatore) powershell produce lo stesso.
B - rian,

-1

C'è un modo più semplice per ottenere la versione esatta della versione .NET installata sul tuo computer da un prompt cmd. Basta seguire le seguenti istruzioni;

Apri il prompt dei comandi (es. Windows + R → digita "cmd") e digita il seguente comando, tutto su una riga:% windir% \ Microsoft.NET \ FrameWork, quindi naviga nella directory con il numero di versione più recente.

Fare riferimento a http://dotnettec.com/check-dot-net-framework-version/


Ricevo questo errore mentre 'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.
provo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.