Come funziona dotnetup

Note

dotnetup è disponibile in anteprima pubblica. Le funzionalità e il comportamento potrebbero cambiare prima della disponibilità generale.

dotnetup separa ciò che richiedi dai file che installa. Questo modello consente a diversi componenti di condividere un'installazione .NET e di dotnetup rimuovere i file non più necessari.

Percorsi di installazione

Una radice di installazione .NET è una directory che dotnetup monitora. Una radice di installazione ha:

  • Percorso di directory completamente qualificato.
  • Architettura: x86, x64o arm64.
  • Zero o più specifiche di installazione, specificate come channels.
  • Zero o più installazioni concrete.

La CLI corrente viene installata per l'architettura del processo in esecuzione dotnetup. Non dispone di un'opzione di architettura.

La directory radice di installazione predefinita di .NET gestita da dotnetup è la sottodirectory dotnet della directory dei dati di dotnetup:

Platform Radice di installazione predefinita
Windows %LOCALAPPDATA%\dotnetup\dotnet
macOS ~/Library/Application Support/dotnetup/dotnet
Linux $XDG_DATA_HOME/dotnetup/dotneto ~/.local/share/dotnetup/dotnet quando XDG_DATA_HOME non è impostato

Usare --install-path per selezionare un'altra radice di installazione. Un percorso di installazione esplicito ha la precedenza su un percorso da global.json, che ha la precedenza sulla radice di installazione predefinita.

dotnetupnon scrive in una directory .NET gestita dal sistema, ad esempio Program Files\dotnet o /usr/share/dotnet.

Componenti

dotnetup gestisce questi tipi di componenti:

Component Nome della specifica di runtime Contenuto installato
.NET SDK Non applicabile SDK, host, runtime, targeting pack e contenuto dell'SDK correlato
ambiente di esecuzione .NET runtime Microsoft.NETCore.App runtime
runtime di ASP.NET Core aspnetcore Microsoft.AspNetCore.App runtime
runtime di Windows Desktop windowsdesktop Microsoft.WindowsDesktop.Appruntime su Windows

Gli alias ASP.NET Core aspnet e l'alias desktop Windows desktop vengono accettati nelle specifiche del componente di runtime.

Specifiche di installazione

Una specifica di installazione registra un componente e un canale o una versione esatta. Ad esempio, una specifica SDK per 10.0.1xx significa "mantenere l'SDK più recente nella banda delle funzionalità 10.0.1xx".

Per altre informazioni sui diversi tipi di canali e versioni supportati, vedere Canali e versioni.

Ogni specifica ha una di queste origini:

  • Explicit: è stato specificato il canale o la versione nella riga di comando.
  • GlobalJson: dotnetup ha derivato il requisito dell'SDK da un file global.json.

All è un filtro di disinstallazione. Non viene archiviato come origine della specifica.

Una versione esatta è una specifica bloccata. I comandi di aggiornamento non lo fanno avanzare. Una specifica del canale può essere risolta a una versione più recente durante un aggiornamento.

Installazioni e file condivisi

Un'installazione registra una versione di componente concreta e le directory del sottocomponente usate. Due specifiche possono risolversi nella stessa installazione.

I comandi di disinstallazione rimuovono prima le specifiche corrispondenti. Garbage Collection mantiene quindi la versione installata più recente che corrisponde a ogni specifica rimanente. Rimuove un'installazione e i relativi sottocomponenti non condivisi solo quando nessuna specifica rimanente ne ha bisogno.

Installazioni tracciate e non tracciate

Per impostazione predefinita, un comando di installazione registra la specifica e il risultato nel manifesto. Un'installazione tracciata può essere elencata, aggiornata e rimossa da dotnetup.

L'opzione --untracked installa i file senza registrarli. dotnetup non elenca, aggiorna o rimuove tali file. Usare questa opzione solo quando un altro processo è proprietario della directory di destinazione.

Per evitare la combinazione accidentale, un'installazione tracciata ha esito negativo se la destinazione contiene un'installazione .NET esistente che non si trova nel manifesto selezionato. Selezionare una directory diversa, rimuovere l'installazione esistente o usare --untracked.

file di stato

La directory dei dati dotnetup contiene questi file di stato a livello di utente:

File Scopo
dotnetup_manifest.json Tiene traccia delle radici di installazione, delle specifiche di installazione, delle installazioni e dei sottocomponenti condivisi.
dotnetup_manifest.json.sha256 Rileva le modifiche apportate al contenuto del manifesto che dotnetup non ha scritto.
dotnetup.config.json Archivia la modalità di accesso .NET e indica se la directory dotnetup si trova su PATH.

Non modificare questi file. Usare i comandi dotnetup install, update, uninstall e env per modificare lo stato corrispondente.

La DOTNET_DOTNETUP_DATA_DIR variabile di ambiente modifica la directory dei dati. L'opzione --manifest-path modifica solo il manifest usato da un determinato comando. Non modifica il file di configurazione o la radice di installazione predefinita.

Operazioni simultanee

I flussi di lavoro di installazione, aggiornamento, disinstallazione, elenco e Garbage Collection coordinano l'accesso allo stato di installazione condivisa. Un comando che accetta diverse dipendenze le risolve prima dell'installazione e può scaricarle simultaneamente. Le modifiche al manifesto rimangono serializzate.

Vedere anche