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.
Nota
Il comportamento dello script di installazione è stato modificato. Scarica .NET da nuovi percorsi di rete. Per altre informazioni, vedere Critical: .NET Install links are changing.
Nome
dotnet-install.ps1
|
dotnet-install.sh: script usato per installare .NET SDK e il runtime condiviso.
Riepilogo
Finestre:
dotnet-install.ps1 [-Architecture <ARCHITECTURE>] [-AzureFeed]
[-Channel <CHANNEL>] [-DryRun] [-FeedCredential]
[-InstallDir <DIRECTORY>] [-JSonFile <JSONFILE>]
[-NoPath] [-ProxyAddress] [-ProxyBypassList <LIST_OF_URLS>]
[-ProxyUseDefaultCredentials] [-Quality <QUALITY>] [-Runtime <RUNTIME>]
[-SkipNonVersionedFiles] [-UncachedFeed] [-KeepZip] [-ZipPath <PATH>] [-Verbose]
[-Version <VERSION>]
Get-Help ./dotnet-install.ps1
Linux/macOS:
dotnet-install.sh [--architecture <ARCHITECTURE>] [--azure-feed]
[--channel <CHANNEL>] [--dry-run] [--feed-credential]
[--install-dir <DIRECTORY>] [--jsonfile <JSONFILE>]
[--no-path] [--quality <QUALITY>]
[--runtime <RUNTIME>] [--runtime-id <RID>]
[--skip-non-versioned-files] [--uncached-feed] [--keep-zip] [--zip-path <PATH>] [--verbose]
[--version <VERSION>]
dotnet-install.sh --help
Lo script bash legge anche le opzioni PowerShell, che possono quindi essere usate con lo script in sistemi Linux/macOS.
Descrizione
Gli script dotnet-install eseguono un'installazione non amministrativa di .NET SDK, che include gli strumenti dell'interfaccia della riga di comando e il runtime condiviso di .NET. Esistono due script:
- Script di PowerShell che funziona in Windows. Per le istruzioni di installazione, vedere Installazione in Windows.
- Uno script bash che funziona su Linux/macOS. Per istruzioni sull'installazione, vedere Installazione in Linux e Installazione in macOS.
Nota
.NET raccoglie i dati di telemetria. Per altre informazioni e come rifiutare esplicitamente, vedere Telemetria di .NET SDK.
Scopo
L'uso previsto degli script è per gli scenari di integrazione continua (CI), dove:
l'SDK deve essere installato senza interazione dell'utente e senza diritti di amministratore.
L'installazione dell'SDK non deve essere persistente in più esecuzioni di integrazione continua.
Sequenza tipica di eventi:
- l'integrazione continua viene attivata.
- Ci installa l'SDK usando uno di questi script.
- L'integrazione continua completa il lavoro e cancella i dati temporanei, inclusa l'installazione dell'SDK.
Per configurare un ambiente di sviluppo o per eseguire le app, usare i programmi di installazione anziché questi script.
Versione consigliata
È consigliabile usare la versione stabile degli script:
- Bash (Linux/macOS): https://dot.net/v1/dotnet-install.sh
- PowerShell (Windows): https://dot.net/v1/dotnet-install.ps1
L'origine degli script si trova nel repository dotnet/install-scripts GitHub.
Modalità script
Entrambi gli script hanno lo stesso comportamento. Scaricano il file ZIP/tarball da destinazioni di compilazione dell'interfaccia della riga di comando e lo installano nel percorso predefinito o in un percorso specificato da -InstallDir|--install-dir.
Per impostazione predefinita, lo script di installazione scarica e installa l'SDK. Se si vuole ottenere solo il runtime condiviso, è possibile specificare l'argomento -Runtime|--runtime.
Per impostazione predefinita, lo script aggiunge il percorso di installazione a $PATH per la sessione corrente. Eseguire l'override di questo comportamento predefinito specificando l'argomento -NoPath|--no-path. Lo script non imposta la variabile di ambiente DOTNET_ROOT.
Importante
Lo script non aggiunge il percorso di installazione alla variabile di ambiente dell'utente PATH, è necessario aggiungerlo manualmente.
Prima di eseguire lo script, assicurarsi che il sistema operativo sia supportato. Per altre informazioni, vedere Installare .NET in Windows, Linux e macOS.
È possibile installare una versione specifica usando l'argomento -Version|--version. La versione deve essere specificata con un numero a tre parti, ad esempio 2.1.0. Se la versione non è specificata, lo script installa la versionelatest.
Gli script di installazione non aggiornano il Registro di sistema in Windows. Scaricano semplicemente i file binari compressi e li copiano in una cartella. Se si desidera aggiornare i valori delle chiavi del Registro di sistema, usare i programmi di installazione di .NET.
Opzioni
-Architecture|--architecture <ARCHITECTURE>Architettura dei file binari di .NET da installare. I valori possibili sono
<auto>,amd64,x64x86,arm64,arm, ,s390x,ppc64leeriscv64. Il valore predefinito è<auto>, che rappresenta l'architettura del sistema operativo attualmente in esecuzione.-AzureFeed|--azure-feedSolo per uso interno. Consente di usare una risorsa di archiviazione diversa da cui scaricare gli archivi SDK. Il valore predefinito è
https://builds.dotnet.microsoft.com/dotnet.-Channel|--channel <CHANNEL>Specifica il canale di origine per l'installazione. I valori possibili sono:
-
STS: versione più recente del supporto per termini standard. -
LTS: versione più recente del supporto a lungo termine. - Versione in due parti nel formato A.B che rappresenta una versione specifica, ad esempio
3.1o8.0. - Versione in tre parti in formato A.B.Cxx, che rappresenta una versione SDK specifica,ad esempio 8.0.1xx o 8.0.2xx. Disponibile dalla versione 5.0.
Il parametro
versionesegue l'override del parametrochannelquando viene usata una versione diversa dalatest.Il valore predefinito è
LTS. Per altre informazioni sui canali di supporto per .NET, vedere la pagina .NET Support Policy (Criteri di supporto per .NET).-
-DryRun|--dry-runSe impostata, lo script non eseguirà l'installazione. Visualizza invece la riga di comando da usare per installare in modo coerente la versione attualmente richiesta dell'interfaccia della riga di comando di .NET CLI. Se ad esempio si specifica la versione
latest, verrà visualizzato un collegamento con la versione specifica in modo che questo comando possa essere usato in modo deterministico in uno script di compilazione. Viene visualizzato anche il percorso del file binario se si preferisce installarlo o scaricarlo manualmente.-FeedCredential|--feed-credentialUsata come stringa di query da accodare al feed di Azure. Consente la modifica dell'URL per usare account di archiviazione BLOB pubblici.
--helpStampa la Guida per lo script. Si applica solo allo script bash. Per PowerShell, usare
Get-Help ./dotnet-install.ps1.-InstallDir|--install-dir <DIRECTORY>Specifica il percorso di installazione. Se la directory non esiste, verrà creata. Il valore predefinito è %LocalAppData%\Microsoft\dotnet in Windows e $HOME/.dotnet in Linux/macOS. I file binari vengono inseriti direttamente in questa directory.
-JSonFile|--jsonfile <JSONFILE>Specifica un percorso di un file global.json che verrà usato per determinare la versione dell'SDK. Il file global.json deve avere un valore per
sdk:version.-NoPath|--no-pathSe impostata, la cartella di installazione non viene esportata nel percorso per la sessione corrente. Per impostazione predefinita, lo script modifica il percorso rendendo disponibili l'interfaccia della riga di comando .NET immediatamente dopo l'installazione.
-ProxyAddressSe impostata, il programma di installazione usa il proxy durante le richieste Web. (Valido solo per Windows).
-ProxyBypassList <LIST_OF_URLS>Se impostato con
ProxyAddress, fornisce un elenco di URL delimitati da virgole che ignorano il proxy. (Valido solo per Windows).-ProxyUseDefaultCredentialsSe impostata, il programma di installazione usa le credenziali dell'utente corrente quando si usa l'indirizzo proxy. (Valido solo per Windows).
-Quality|--quality <QUALITY>Scaricare la build più recente della qualità specificata nel canale. I valori possibili sono:
daily,previeweGA.I diversi valori di qualità segnalano diverse fasi del processo di rilascio dell'SDK o del runtime installato.
-
daily: le build più recenti dell'SDK o del runtime. Sono compilati ogni giorno e non vengono testati. Non sono consigliati per l'uso in produzione, ma spesso possono essere usati per testare funzionalità o correzioni specifiche immediatamente dopo che sono stati uniti nel prodotto. Queste compilazioni provengono dal repositorydotnet/installere quindi se si cercano correzioni dadotnet/sdkè necessario attendere che il codice fluisca e sia collegato dall'SDK al programma di installazione prima che venga visualizzato in una compilazione giornaliera. -
preview: le versioni pubbliche mensili della versione successiva di .NET, destinate all'uso pubblico. Non consigliato per l'uso in produzione. Destinato a consentire agli utenti di sperimentare e testare la nuova versione principale prima del rilascio. -
GA: le versioni stabili finali di .NET SDK e runtime. Destinato all'uso pubblico e al supporto di produzione.
L'opzione
--qualityfunziona solo in combinazione con--channel, ma non è applicabile per i canaliSTSeLTSe verrà ignorata se viene usato uno di questi canali.Per un'installazione dell'SDK, usare un valore
channelnel formatoA.BoA.B.Cxx. Per un'installazione di runtime, usarechannelin formatoA.B.Non usare entrambi i parametri
versionequality. Quando si specificaquality, lo script determina autonomamente la versione corretta.Disponibile dalla versione 5.0.
-
-Runtime|--runtime <RUNTIME>Installa solo il runtime condiviso, non l'intero SDK. I valori possibili sono:
-
dotnet: runtime condivisoMicrosoft.NETCore.App. -
aspnetcore: runtime condivisoMicrosoft.AspNetCore.App. -
windowsdesktop: runtime condivisoMicrosoft.WindowsDesktop.App.
-
--os <OPERATING_SYSTEM>Specifica il sistema operativo per il quale vengono installati gli strumenti. I valori possibili sono: :
osx,macos,linux,linux-musl,freebsd.Il parametro è facoltativo e deve essere usato solo quando è necessario eseguire l'override del sistema operativo rilevato dallo script.
-SharedRuntime|--shared-runtimeNota
Questo parametro è obsoleto e potrebbe essere rimosso in una versione futura dello script. L'alternativa consigliata è l'opzione
-Runtime|--runtime.Installa solo i bit del runtime condiviso, non l'intero SDK. Questa opzione equivale a specificare
-Runtime|--runtime dotnet.-SkipNonVersionedFiles|--skip-non-versioned-filesIgnora l'installazione dei file senza versione, ad esempio dotnet.exe, se esistono già.
-UncachedFeed|--uncached-feedSolo per uso interno. Consente di usare una risorsa di archiviazione diversa da cui scaricare gli archivi SDK. Questo parametro sovrascrive
-AzureFeed|--azure-feed.-KeepZip|--keep-zipSe impostato, l'archivio SDK scaricato viene mantenuto dopo l'installazione.
-ZipPath|--zip-path <PATH>Se impostato, l'archivio SDK scaricato viene archiviato nel percorso specificato.
-Verbose|--verboseVisualizza le informazioni di diagnostica.
-Version|--version <VERSION>Rappresenta una versione di build specifica. I valori possibili sono:
-
latest: ultima build sul canale (valore usato con l'opzione-Channel). - Versione in tre parti nel formato X.Y.Z che rappresenta una versione di build specifica; sostituisce l'opzione
-Channel. Ad esempio:2.0.0-preview2-006120.
Se non viene specificata,
-Versionviene impostata automaticamente sulatest.-
Esempi
Installare la versione LTS (Long Term Support) più recente nel percorso predefinito:
Finestre:
./dotnet-install.ps1 -Channel LTSmacOS/Linux:
./dotnet-install.sh --channel LTSInstallare la versione di anteprima più recente dell'SDK 6.0.1xx nel percorso specificato:
Finestre:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\climacOS/Linux:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cliInstallare la versione 6.0.0 del runtime condiviso:
Finestre:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0macOS/Linux:
./dotnet-install.sh --runtime dotnet --version 6.0.0Ottenere lo script e installare la versione 6.0.2 versione dietro un proxy aziendale (solo Windows):
Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -Proxy $env:HTTP_PROXY -ProxyUseDefaultCredentials -OutFile 'dotnet-install.ps1'; ./dotnet-install.ps1 -InstallDir '~/.dotnet' -Version '6.0.2' -Runtime 'dotnet' -ProxyAddress $env:HTTP_PROXY -ProxyUseDefaultCredentials;Ottenere lo script e installare gli esempi di .NET CLI di una singola riga di codice:
Finestre:
# Run a separate PowerShell process because the script calls exit, so it will end the current PowerShell session. &powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) <additional install-script args>"macOS/Linux:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin <additional install-script args>Installare più versioni senza sovrascrivere
dotneti file binari dalle installazioni precedenti.Se si installano GLI SDK .NET o il runtime .NET da una versione precedente in una versione più recente, è necessario usare
--skip-non-versioned-filesin modo che i file "nonversionati"dotnetdella versione precedente non sovrascrivano gli stessi file dalla versione più recente.:~ $ ./dotnet-install.sh --channel 9.0 --install-dir local-dotnet # installs the latest 9 SDK to the specified directory dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz size is 218004272 bytes. dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz dotnet-install: Downloaded file size is 218004272 bytes. dotnet-install: The remote and local file sizes are equal. dotnet-install: Installed version is 9.0.303 dotnet-install: Adding to current process PATH: `$HOME/local-dotnet`. Note: This change will be visible only when sourcing script. dotnet-install: Note that the script does not resolve dependencies during installation. dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section. dotnet-install: Installation finished successfully. :~ $ ./local-dotnet/dotnet --list-runtimes # see what runtimes we have available Microsoft.AspNetCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] :~ $ ./local-dotnet/dotnet --list-sdks # see what SDKs we have available 9.0.303 [$HOME/local-dotnet/sdk] :~ $ ./dotnet-install.sh --channel 8.0 --install-dir local-dotnet --skip-non-versioned-files # install the 8 SDK to the same place, but keep the 9 dotnet binaries dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz size is 216096947 bytes. dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz dotnet-install: Downloaded file size is 216096947 bytes. dotnet-install: The remote and local file sizes are equal. dotnet-install: Installed version is 8.0.412 dotnet-install: Adding to current process PATH: `$HOME/local-dotnet`. Note: This change will be visible only when sourcing script. dotnet-install: Note that the script does not resolve dependencies during installation. dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section. dotnet-install: Installation finished successfully. :~ $ ./local-dotnet/dotnet --list-runtimes # we should have 8 and 9 Runtimes now Microsoft.AspNetCore.App 8.0.18 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 8.0.18 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] :~ $ ./local-dotnet/dotnet --list-sdks # we should have 2 SDKs now 8.0.412 [$HOME/local-dotnet/sdk] 9.0.303 [$HOME/local-dotnet/sdk]
Impostare le variabili di ambiente
L'installazione manuale di .NET non aggiunge le variabili di ambiente a livello di sistema e in genere funziona solo per la sessione in cui è stato installato .NET. Esistono due variabili di ambiente da impostare per il sistema operativo:
DOTNET_ROOTQuesta variabile è impostata sulla cartella .NET installata, ad esempio
$HOME/.dotnetper Linux e macOS e$HOME\.dotnetin PowerShell per Windows.PATHQuesta variabile deve includere sia la cartella
DOTNET_ROOTsia la cartella .dotnet/tools dell'utente . In genere si tratta di$HOME/.dotnet/toolsin Linux e macOS e$HOME\.dotnet\toolsin PowerShell in Windows.
Suggerimento
Per Linux e macOS, usare il comando echo per impostare le variabili nel profilo della shell, ad esempio .bashrc:
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc
Disinstalla
Non è disponibile alcun script di disinstallazione. Per informazioni sulla disinstallazione manuale di .NET, vedere Come rimuovere il runtime e l'SDK .NET.
Convalida della firma di dotnet-install.sh
La convalida della firma è una misura di sicurezza importante che consente di garantire l'autenticità e l'integrità di uno script. Verificando la firma di uno script, è possibile assicurarsi che non sia stato manomesso e che provenga da un'origine attendibile.
Ecco una guida dettagliata su come verificare l'autenticità dello script dotnet-install.sh usando GpG:
- Installare GPG: GPG (GNU Privacy Guard) è uno strumento gratuito e open source per crittografare e firmare i dati. È possibile installarlo seguendo le istruzioni nel sito Web GpG.
-
Importare la chiave pubblica: scaricare il file di chiave pubblica degli script di installazione e quindi importarlo nel keyring gpg eseguendo il comando
gpg --import dotnet-install.asc. -
Scaricare il file di firma: il file di firma per lo script bash è disponibile all'indirizzo
https://dot.net/v1/dotnet-install.sig. È possibile scaricarlo usando uno strumento comewgetocurl. -
Verificare la firma: per verificare la firma dello script bash, eseguire il comando
gpg --verify dotnet-install.sig dotnet-install.sh. In questo modo verrà verificata la firma del filedotnet-install.shrispetto alla firma nel filedotnet-install.sig. -
Controllare il risultato: se la firma è valida, verrà visualizzato un messaggio contenente
Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>". Ciò significa che lo script non è stato manomesso e può essere considerato attendibile.
Preparazione dell'ambiente
L'installazione di GpG e l'importazione della chiave pubblica è un'operazione una tantum.
sudo apt install gpg
wget https://dot.net/v1/dotnet-install.asc
gpg --import dotnet-install.asc
Al termine, verrà visualizzato un output simile al seguente:
gpg: directory '/home/<user>/.gnupg' created
gpg: keybox '/home/<user>/.gnupg/pubring.kbx' created
gpg: /home/<user>/.gnupg/trustdb.gpg: trustdb created
gpg: key B9CF1A51FC7D3ACF: public key "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
Download e verifica
Dopo aver importato la chiave, è ora possibile scaricare lo script e la firma, quindi verificare che lo script corrisponda alla firma:
wget https://dot.net/v1/dotnet-install.sh
wget https://dot.net/v1/dotnet-install.sig
gpg --verify dotnet-install.sig dotnet-install.sh
Al termine, verrà visualizzato un output simile al seguente:
gpg: Signature made <datetime>
gpg: using RSA key B9CF1A51FC7D3ACF
gpg: Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2B93 0AB1 228D 11D5 D7F6 B6AC B9CF 1A51 FC7D 3ACF
L'avviso indica che non si considera attendibile la chiave pubblica nel keyring, ma lo script è ancora verificato. Il codice di uscita restituito dal comando di verifica deve essere 0, che indica l'esito positivo.
Vedi anche
- Versioni di .NET
- .NET Runtime and SDK download archive (Archivio di download per runtime e SDK di .NET)