Questo articolo illustra quali versioni di .NET sono supportate in Windows, come installare .NET e la differenza tra SDK e runtime.
A differenza di .NET Framework, .NET non è legato alla versione di Windows. È possibile avere una sola versione di .NET Framework installata in Windows. Tuttavia, .NET è autonomo e può essere installato ovunque nel computer. Alcune app potrebbero includere la propria copia di .NET.
Per impostazione predefinita, .NET viene installato nella directory Programma file\dotnet del computer, a meno che il metodo di installazione non scelga una directory diversa.
.NET è costituito dal runtime e dall'SDK. Il runtime esegue le app .NET e l'SDK viene usato per creare app.
Scegliere il runtime corretto
Esistono tre runtime diversi per Windows, che abilitano l'esecuzione di tipi di app diversi. L'SDK include tutti e tre i runtime e un programma di installazione per un runtime potrebbe includere un runtime aggiuntivo. La tabella seguente descrive il runtime incluso in ogni specifico programma di installazione di .NET:
Programma di installazione
Include Runtime di .NET
Include Runtime di .NET Desktop
Include Runtime di ASP.NET Core
Runtime .NET
Sì
No
No
Runtime di .NET Desktop
Sì
Sì
No
Runtime di ASP.NET Core
No
No
Sì
.NET SDK
Sì
Sì
Sì
Per assicurarsi di poter eseguire tutte le app .NET in Windows, installare sia il runtime di ASP.NET Core che il runtime di .NET Desktop. Il runtime ASP.NET Core esegue app basate sul Web e il runtime desktop .NET esegue app desktop, ad esempio un'app Windows Presentation Foundation (WPF) o Windows Form.
Scegliere come installare .NET
Esistono diversi modi per installare .NET e alcuni prodotti potrebbero gestire la propria versione di .NET. Se si installa .NET tramite software che gestisce la propria versione di .NET, potrebbe non essere abilitato a livello di sistema. Assicurarsi di comprendere le implicazioni dell'installazione di .NET tramite altri software.
Se non si è certi del metodo da scegliere dopo aver esaminato gli elenchi nelle sezioni seguenti, probabilmente è preferibile usare il programma di installazione di .NET.
Usare Visual Studio per installare .NET quando si vogliono sviluppare app .NET con Visual Studio. Visual Studio gestisce la propria copia di .NET. Questo metodo installa i modelli di SDK, runtime e Visual Studio.
Installare l'estensione C# Dev Kit per Visual Studio Code per sviluppare app .NET. L'estensione può usare un SDK già installato o installarlo automaticamente.
Installare .NET con un pacchetto di Windows Installer, un eseguibile avviato dall'utente. Questo metodo può installare l'SDK e il runtime. Le installazioni vengono eseguite a livello di sistema.
Usare WinGet per installare .NET quando si vuole gestire .NET tramite la riga di comando. Questo metodo può installare l'SDK e il runtime. Le installazioni vengono eseguite a livello di sistema.
Come promemoria, questa tabella si applica a .NET moderno (anziché a .NET Framework). Per installare .NET Framework, vedere la Guida all'installazione di .NET Framework.
Le date di fine servizio delle versioni di Windows 10 sono segmentate per edizione. Solo le edizioni Home, Pro, Pro Education e Pro per workstation vengono prese in considerazione nella tabella seguente. Controllare la scheda dei fatti del ciclo di vita di Windows per informazioni specifiche.
Sistema operativo
.NET 9 (architetture)
.NET 8 (architetture)
Windows 11 (24H2, 23H2, 22H2 Ent/Edu)
✔️ x64, x86, Arm64
✔️ x64, x86, Arm64
Windows 10 (22H2+)
✔️ x64, x86, Arm64
✔️ x64, x86, Arm64
Windows Server 2025 Windows Server 2022 Windows Server 2019 Windows Server, versione 1903 o successiva Windows Server 2016 Windows Server 2012 R2 Windows Server 2012
Non è più disponibile una versione di .NET supportata in Windows 7 e Windows 8.1. Le ultime versioni supportate erano .NET 6 e il supporto è terminato il 12 novembre 2024.
Windows Server 2012 è ancora supportato da qualsiasi versione di .NET ancora supportata.
Tutte e tre queste versioni di Windows richiedono l'installazione di altre dipendenze:
Microsoft Visual C++ 2015-2019 Redistributable 64-bit / 32-bit
Windows Server 2012
Microsoft Visual C++ 2015-2019 Redistributable 64-bit / 32-bit
Windows Server 2012 R2
Microsoft Visual C++ 2015-2019 Redistributable 64-bit / 32-bit
I requisiti precedenti sono necessari anche se viene visualizzato un errore correlato a una delle dll seguenti:
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-cor-timezone-l1-1-0.dll
hostfxr.dll
PC Windows basati su Arm
.NET è supportato nei PC Windows basati su Arm. Le sezioni seguenti descrivono gli aspetti da considerare durante l'installazione di .NET.
Differenze di percorso
In un PC Windows basato su Arm, tutte le versioni Arm64 di .NET vengono installate nella normale cartella C:\Program Files\dotnet\. Tuttavia, la versione x64 della SDK .NET viene installata nella cartellaC:\Program Files\dotnet\x64\.
Variabili di percorso
Le variabili di ambiente che aggiungono .NET al percorso di sistema, ad esempio la variabile PATH, potrebbero dover essere modificate se sono installate entrambe le versioni x64 e ARM64 di .NET SDK. Inoltre, alcuni strumenti si basano sulla variabile di ambiente DOTNET_ROOT, che dovrebbe essere aggiornata anch’essa per puntare alla cartella di installazione appropriata della SDK .NET.
Installare con Visual Studio
Visual Studio installa la propria copia di .NET separata da altre copie di .NET. Versioni diverse di Visual Studio supportano versioni diverse di .NET. L'ultima versione di Visual Studio supporta sempre l'ultima versione di .NET.
Il programma di installazione di Visual Studio installa e configura Visual Studio. Alcuni carichi di lavoro di Visual Studio includono .NET, ad esempio ASP.NET e sviluppo Web e Sviluppo di app multipiattaforma .NET. È possibile installare versioni specifiche di .NET tramite la scheda Singoli componenti.
La documentazione di Visual Studio fornisce istruzioni su come:
Se si usa Visual Studio per sviluppare app .NET, la tabella seguente descrive la versione minima necessaria di Visual Studio in base alla versione della SDK .NET di destinazione.
Versione di .NET SDK
Versione di Visual Studio
9
Visual Studio 2022 versione 17.12 o successiva.
8
Visual Studio 2022, versione 17.8 o successive.
7
Visual Studio 2022, versione 17.4 o successive.
6
Visual Studio 2022, versione 17.0 o successive.
5
Visual Studio 2019, versione 16.8 o successive.
3.1
Visual Studio 2019, versione 16.4 o successive.
3,0
Visual Studio 2019, versione 16.3 o successive.
2.2
Visual Studio 2017, versione 15.9 o successive.
2.1
Visual Studio 2017, versione 15.7 o successive.
Se Visual Studio è già installato, è possibile controllare la versione seguendo questa procedura.
Aprire Visual Studio.
Selezionare Guida> su Microsoft Visual Studio.
Leggere il numero di versione dalla finestra di dialogo Informazioni.
Visual Studio Code è un editor di codice sorgente potente e leggero che viene eseguito sul desktop. Visual Studio Code può utilizzare l'SDK già installato nel sistema. Inoltre, l'estensione C# Dev Kit installerà .NET se non è già installata.
Per istruzioni sull'installazione di .NET tramite Visual Studio Code, consultare la sezione Introduzione a C# in VS Code.
Programma di installazione di .NET
La pagina di download per .NET fornisce i file eseguibili di Windows Installer.
Selezionare la versione di .NET da scaricare, ad esempio 9.0.
Trovare la casella relativa all'SDK o al runtime che contiene i collegamenti per il download di .NET.
Nella colonna Programmi di installazione individuare la riga Windows e selezionare il collegamento per l'architettura della CPU in uso. In caso di dubbi, selezionare x64 perché è la più comune.
Il browser deve scaricare automaticamente il programma di installazione.
Suggerimento
L'immagine seguente mostra l'SDK, ma è anche possibile scaricare il runtime.
Aprire Esplora risorse e passare alla posizione in cui è stato scaricato il file, molto probabilmente la cartella Download.
Fare doppio clic sul file per installare .NET.
Si aprirà la finestra di dialogo di Windows Installer.
Selezionare Installa e seguire le istruzioni per installare .NET.
Usare il parametro /? per visualizzare un elenco di opzioni.
Se si desidera installare .NET in modo invisibile all'utente, ad esempio in un ambiente di produzione o per supportare l'integrazione continua, utilizzare le opzioni seguenti:
/install
Installa .NET.
/quiet
Impedisce la visualizzazione di qualsiasi interfaccia utente e richiesta.
/norestart
Impedisce qualsiasi tentativo di riavvio.
Il programma di installazione restituisce un codice di uscita pari a 0 per l'esito positivo e un codice di uscita 3010 per indicare che è necessario un riavvio. Qualsiasi altro valore è in genere un codice di errore.
Microsoft Update
I file eseguibili del programma di installazione .NET sono prodotti indipendenti che possono essere gestiti tramite Microsoft Update (MU) in Windows. MU è diverso da Windows Update (WU), usato per gestire i componenti del sistema operativo come .NET Framework.
Le correzioni di sicurezza e non di sicurezza per le versioni supportate di .NET vengono fornite tramite MU usando più canali di distribuzione. Gli aggiornamenti automatici (AU) sono rilevanti per gli utenti finali e i consumer, mentre Windows Server Update Services (WSUS) e Windows Update Catalog sono rilevanti per gli amministratori IT.
I file eseguibili del programma di installazione .NET supportano installazioni side-by-side (SxS) in versioni principali e secondarie per architetture e componenti diversi, ad esempio il runtime e l'SDK. Ad esempio, è possibile installare il runtime 6.0.15 (x64) e 6.0.17 (x86). Quando si attiva MU, verrà offerto il programma di installazione più recente per entrambe le installazioni.
Blocca gli aggiornamenti
Anche se la maggior parte degli utenti preferisce essere aggiornata, è possibile bloccare gli aggiornamenti .NET usando le chiavi del Registro di sistema nella tabella seguente.
Versione di .NET
Chiave del Registro di sistema
Nome
Type
Valore
Tutte le date
HKLM\SOFTWARE\Microsoft\.NET
BlockMU
REG_DWORD
0x00000001
.NET 9
HKLM\SOFTWARE\Microsoft\.NET\9.0
BlockMU
REG_DWORD
0x00000001
.NET 8
HKLM\SOFTWARE\Microsoft\.NET\8.0
BlockMU
REG_DWORD
0x00000001
.NET 7
HKLM\SOFTWARE\Microsoft\.NET\7.0
BlockMU
REG_DWORD
0x00000001
.NET 6
HKLM\SOFTWARE\Microsoft\.NET\6.0
BlockMU
REG_DWORD
0x00000001
.NET 5
HKLM\SOFTWARE\Microsoft\.NET\5.0
BlockMU
REG_DWORD
0x00000001
.NET Core 3.1
HKLM\SOFTWARE\Microsoft\.NET\3.1
BlockMU
REG_DWORD
0x00000001
.NET Core 2.1
HKLM\SOFTWARE\Microsoft\.NET\2.1
BlockMU
REG_DWORD
0x00000001
Aggiornamenti automatici per il sistema operativo server
Gli aggiornamenti per i sistemi operativi server sono supportati da WSUS e Microsoft Update Catalog, ma non dall'AU. I sistemi operativi server possono acconsentire esplicitamente a ricevere gli aggiornamenti tramite au usando le chiavi del Registro di sistema seguenti.
Versione di .NET
Chiave del Registro di sistema
Nome
Type
Valore
Tutte le date
HKLM\SOFTWARE\Microsoft\.NET
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 9
HKLM\SOFTWARE\Microsoft\.NET\9.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 8
HKLM\SOFTWARE\Microsoft\.NET\8.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 7
HKLM\SOFTWARE\Microsoft\.NET\7.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 6
HKLM\SOFTWARE\Microsoft\.NET\6.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 5
HKLM\SOFTWARE\Microsoft\.NET\5.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET Core 3.1
HKLM\SOFTWARE\Microsoft\.NET\3.1
AllowAUOnServerOS
REG_DWORD
0x00000001
Scegliere quando vengono rimosse le versioni precedenti
I file eseguibili del programma di installazione installano sempre nuovo contenuto prima di rimuovere l'installazione precedente. Le applicazioni in esecuzione potrebbero essere interrotte o arrestarsi in modo anomalo quando i runtime meno recenti vengono rimossi. Per ridurre al minimo l'impatto dell'aggiornamento di .NET, è possibile specificare quando è necessario rimuovere un'installazione .NET precedente usando una chiave del Registro di sistema.
Versione di .NET
Chiave del Registro di sistema
Nome
Type
Valore
Tutte le date
HKLM\SOFTWARE\Microsoft\.NET
RemovePreviousVersion
REG_SZ
always, never o nextSession
.NET 9
HKLM\SOFTWARE\Microsoft\.NET\9.0
RemovePreviousVersion
REG_SZ
always, never o nextSession
.NET 8
HKLM\SOFTWARE\Microsoft\.NET\8.0
RemovePreviousVersion
REG_SZ
always, never o nextSession
never conserva le installazioni precedenti e richiede l'intervento manuale per rimuovere le installazioni precedenti di .NET.
always rimuove le installazioni precedenti dopo l'installazione della nuova versione. Si tratta del comportamento predefinito in .NET.
nextSession rinvia la rimozione fino alla sessione di accesso successiva dai membri del gruppo Administrators.
I valori non fanno distinzione tra maiuscole e minuscole e valori non validi per impostazione predefinita sono always.
Quando la rimozione viene posticipata, il programma di installazione scrive un comando nella chiave del Registro di sistema RunOnce per disinstallare la versione precedente. Il comando viene eseguito solo se un utente del gruppo Administrators accede al computer.
Nota
Questa funzionalità è disponibile solo in .NET 8 (8.0.11), 9 e versioni successive di .NET. Si applica solo ai file eseguibili del programma di installazione autonomi e influisce sulle distribuzioni come WinGet che le usano.
Installare con Gestione pacchetti Windows (WinGet)
Esistono vari runtime che è possibile installare. Fare riferimento alla sezione Scegliere il runtime corretto per comprendere cosa è incluso in ogni runtime.
Usare il comando winget search per cercare versioni diverse del pacchetto da installare. Ad esempio, il comando seguente cerca tutti gli SDK .NET disponibili tramite WinGet:
winget search Microsoft.DotNet.SDK
I risultati della ricerca vengono visualizzati in una tabella con l'identificatore di ogni pacchetto.
Name Id Version Source
----------------------------------------------------------------------------------------------
Microsoft .NET SDK 9.0 Microsoft.DotNet.SDK.9 9.0.100 winget
Microsoft .NET SDK 8.0 Microsoft.DotNet.SDK.8 8.0.300 winget
Microsoft .NET SDK 7.0 Microsoft.DotNet.SDK.7 7.0.409 winget
Microsoft .NET SDK 6.0 Microsoft.DotNet.SDK.6 6.0.422 winget
Microsoft .NET SDK 5.0 Microsoft.DotNet.SDK.5 5.0.408 winget
Microsoft .NET SDK 3.1 Microsoft.DotNet.SDK.3_1 3.1.426 winget
Installare le versioni di anteprima
Se è disponibile una versione di anteprima, sostituire il numero di versione nell'ID con la parola Preview. L'esempio seguente installa la versione di anteprima di Runtime .NET Desktop:
L'installazione di .NET tramite lo script di PowerShell dotnet-install è consigliata per l'integrazione continua e le installazioni non amministrative. Se si installa .NET per il normale uso nel sistema, usare il Programma di installazione di .NET o Gestione pacchetti di Windows .
Per impostazione predefinita, lo script installa la versione Long Term Support (LTS) più recente, ovvero .NET 8. È possibile scegliere una versione specifica specificando l'opzione -Channel. Includere l'opzione -Runtime per installare un runtime. In caso contrario, lo script installa l'SDK. Lo script è disponibile all'indirizzo https://dot.net/v1/dotnet-install.ps1 e il codice sorgente è ospitato in GitHub.
Dopo aver scaricato un programma di installazione o la versione binaria, verificare che il file non sia stato modificato o danneggiato. È possibile verificare il checksum nel computer e quindi confrontarlo con ciò che è stato segnalato nel sito Web di download.
Quando si scarica il file da una pagina di download ufficiale, viene visualizzato il checksum per il file in una casella di testo. Selezionare il pulsante Copia per copiare il valore del checksum negli Appunti.
È possibile usare PowerShell o il prompt dei comandi per convalidare il checksum del file scaricato. Ad esempio, il comando seguente segnala il checksum del file dotnet-sdk-8.0.100-win-x64.exe:
Confrontare il checksum con il valore fornito dal sito di download.
Usare PowerShell e un file di checksum per convalidare
Le note sulla versione .NET contengono un collegamento a un file di checksum che è possibile utilizzare per convalidare il file scaricato. I passaggi seguenti descrivono come scaricare il file di checksum e convalidare un file binario di installazione di .NET:
La pagina delle note sulla versione per .NET 8 su GitHub all'indirizzo https://github.com/dotnet/core/tree/main/release-notes/8.0 contiene una sezione denominata Releases. La tabella in questa sezione contiene collegamenti ai download e ai file di checksum per ogni versione di .NET 8:
Selezionare il collegamento per la versione di .NET scaricata. La sezione precedente usa SDK .NET 8.0.100, che si trova nella versione .NET 8.0.0.
Suggerimento
Se non si è certi della versione .NET che contiene il file di checksum, esplorare i collegamenti fino a rintracciarlo.
Nella pagina della versione è possibile visualizzare la versione di Runtime .NET e SDK .NET e un collegamento al file di checksum:
Copiare il collegamento al file di checksum.
Usare lo script seguente, ma sostituire il collegamento per scaricare il file di checksum appropriato:
Se viene visualizzata la stampaFalso, il file scaricato non è valido e non deve essere utilizzato.
Risoluzione dei problemi
Dopo aver installato .NET SDK potrebbero verificarsi problemi durante il tentativo di eseguire comandi dell'interfaccia della riga di comando di .NET. In questa sezione vengono raccolte le problematiche comuni e vengono fornite le soluzioni.
Molto probabilmente sono state installate sia le versioni x86 (a 32 bit) che x64 (a 64 bit) della SDK .NET. Ciò causa un conflitto perché, quando si esegue il comando dotnet, viene risolto nella versione x86 quando deve essere risolto nella versione x64. La soluzione al problema consiste nel modificare la variabile %PATH% per risolvere prima la versione x64.
Verificare che entrambe le versioni siano installate eseguendo il comando where.exe dotnet. In questo caso, verrà visualizzata una voce per le cartelle Program Files\ e Program Files (x86)\. Se la cartella Program Files (x86)\ appare per prima, come illustrato nell'esempio seguente, si tratta di una situazione non corretta ed è necessario continuare con il passaggio successivo.
Se la situazione è corretta e la cartella Program Files\ appare per prima, non si è verificato il problema di cui tratta questa sezione ed è necessario creare una richiesta di supporto per .NET in GitHub
Premere il pulsante Windows e digitare "Modifica le variabili di ambiente di sistema" nella ricerca. Selezionare Modifica le variabili di ambiente di sistema.
Viene visualizzata la finestra Proprietà di sistema nella scheda Avanzate. Selezionare Variabili di ambiente.
Nella finestra Variabili di ambiente, nel gruppo Variabili di sistema , selezionare la riga Percorso*, quindi selezionare il pulsante Modifica.
Usare i pulsanti Sposta su e Sposta giù per spostare la voceC:\Program Files\dotnet\ sopra C:\Program Files (x86)\dotnet\.
La compilazione di app è più lenta del previsto
Assicurarsi che Controllo app intelligente, una funzionalità di Windows, sia disattivata. L’attivazione di Controllo smart app è sconsigliata nei computer utilizzati per lo sviluppo. Qualsiasi impostazione diversa da disattivata" potrebbe influire negativamente sulle prestazioni dell'SDK.
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
.NET è una piattaforma per sviluppatori gratuita, multipiattaforma e open source che consente di compilare molti tipi diversi di applicazione. Con .NET è possibile usare più linguaggi, editor e librerie per creare applicazioni per Web, dispositivi mobili, desktop, giochi e IoT.