Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Note
dotnetup è disponibile in anteprima pubblica. Le funzionalità e il comportamento potrebbero cambiare prima della disponibilità generale.
Dotnetup può configurare l'ambiente per rendere disponibili gli SDK e i runtime di .NET. Lo fa impostando le variabili di ambiente seguenti:
-
PATH: rende ildotnetcomando disponibile nella riga di comando. Gli strumenti di sviluppo, ad esempio Visual Studio o C# Dev Kit, usanoPATHanche per individuare .NET SDK e runtime. -
DOTNET_ROOT: indica ai file eseguibili dell'applicazione dipendenti dal framework dove trovare un'installazione .NET e i relativi runtime condivisi.
Dotnetup supporta diverse modalità di accesso che controllano dove sono impostate queste variabili di ambiente. È possibile scegliere una modalità di accesso durante la configurazione iniziale di dotnetup o successivamente con il comando dotnetup env.
| Modalità di accesso | Behavior |
|---|---|
none |
Non modifica queste variabili di ambiente. Eseguire .NET con dotnetup dotnet. |
shell |
Modifica il profilo della shell per impostare queste variabili di ambiente. I processi avviati da tale shell usano gli SDK e i runtime di .NET installati da dotnetup. |
everywhere |
Modifica il sistema PATH e imposta la variabile di ambiente a livello DOTNET_ROOT di utente. Disponibile solo in Windows. |
Per impostazione predefinita, dotnetup si aggiunge anche a PATH, indipendentemente dall'impostazione della modalità di accesso. Questo può essere controllato con dotnetup env set --dotnetup-on-path <true|false>.
Considerazioni sulla modalità "Everywhere"
La modalità Everywhere è l'impostazione predefinita in Windows in modo che gli SDK e i runtime installati da dotnetup siano disponibili dagli strumenti di sviluppo e dai terminali che usano cmd come shell. Tuttavia, esistono alcuni aspetti da tenere presenti, principalmente per quanto riguarda il modo in cui interagisce con le installazioni a livello di computer dell'SDK e del runtime di .NET.
Le installazioni di .NET a livello di sistema si trovano nella cartella Programmi. Possono essere installati con i programmi di installazione che possono essere scaricati dalla pagina di download di .NET. Visual Studio installa installazioni a livello di computer dell'SDK e del runtime .NET e i programmi di installazione per le applicazioni dipendenti dal framework possono anche installare il runtime .NET da cui dipendono nella posizione a livello di computer.
In modalità ovunque, la directory radice di installazione di .NET locale dell'utente, gestita da dotnetup, sostituirà la directory radice di installazione di .NET a livello di computer. Ciò significa che .NET SDK e runtime installati in Program Files non saranno disponibili. I progetti che dipendono da tali SDK non riusciranno a compilare se non è installato un SDK corrispondente. Se non è installato un runtime corrispondente, le applicazioni dipendenti dal framework non si avviano e visualizzano un errore che indica che è necessario installare o aggiornare .NET per eseguire l'applicazione.
Per evitare questi problemi, l'installazione iniziale di dotnetup offre la possibilità di eseguire la migrazione delle installazioni esistenti di system .NET SDK e Runtime. È anche possibile migrarli esplicitamente eseguendo dotnetup sdk install --migrate-from-system per gli SDK o dotnetup runtime install --migrate-from-system per i runtime.
L'attivazione o la disattivazione della modalità Everywhere richiede la modifica della variabile PATH di sistema, che richiede l'elevazione dei privilegi (ad esempio un'approvazione richiesta di controllo dell'account utente o "Esegui come amministratore"). Ciò è dovuto al fatto che i programmi di installazione a livello di sistema per .NET aggiungono la directory radice di installazione di .NET al percorso di sistema e il percorso di sistema ha la precedenza su PATH a livello di utente durante la risoluzione dei comandi. Quindi dotnetup deve modificare il PATH di sistema per fare in modo che la directory radice di installazione di .NET di dotnetup abbia la precedenza.
Poiché il PATH di sistema si applica a tutti gli utenti, queste modifiche possono influire sugli altri utenti. Il percorso aggiunto al PATH di sistema è per impostazione predefinita nella cartella AppData locale dell'utente. In genere non sarà accessibile ad altri utenti, quindi non influirebbe su quale versione di dotnet viene risolta. Tuttavia, i processi con privilegi elevati (ovvero l'esecuzione come amministratore) sarebbero in grado di leggere il percorso e potrebbero finire per individuare in modo imprevisto SDK o runtime .NET di un altro utente.
Shell supportati
Supporto per la generazione di profili e script:
- Bash
- Z shell
- Pesce
- Pwsh (PowerShell Core)
- PowerShell
Se non si passa --shell, dotnetup rileva la shell corrente. Usare una shell esplicita quando il rilevamento non è disponibile o quando si vuole aggiornare un profilo diverso:
dotnetup env set shell --shell zsh
Stato archiviato e osservato
dotnetup.config.json archivia la modalità di accesso selezionata e indica se dotnetup deve essere su PATH.
dotnetup env show confronta tale configurazione con il profilo e l'ambiente correnti. Segnala la deriva se lo stato osservato non corrisponde.
Riapplicare la configurazione archiviata per correggere la deriva:
dotnetup env set
Terminale attuale
Le modifiche di profilo e dell'ambiente Windows non riscrivono l'ambiente del processo corrente. Aprire un nuovo terminale, caricare il profilo modificato o valutare lo script generato.
Per la shell Bash o Z:
eval "$(dotnetup env script)"
Per PowerShell:
dotnetup env script --shell pwsh | Invoke-Expression
env script segue la configurazione archiviata quando non si passano le opzioni di selezione. Usare --dotnet, --dotnetupo entrambi per selezionare il contenuto generato.
Rimuovere la configurazione dell'ambiente
Rimuovere tutti i cablaggi dell'ambiente gestito:
dotnetup env clear
Questo comando equivale a:
dotnetup env set none --dotnetup-on-path false
Non disinstalla gli SDK o i runtime.