Riferimento agli script dotnet-install
Nome
dotnet-install.ps1
| dotnet-install.sh
: script usato per installare .NET SDK e il runtime condiviso.
Riepilogo
Windows:
dotnet-install.ps1 [-Architecture <ARCHITECTURE>] [-AzureFeed]
[-Channel <CHANNEL>] [-DryRun] [-FeedCredential]
[-InstallDir <DIRECTORY>] [-JSonFile <JSONFILE>]
[-NoCdn] [-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-cdn] [--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
,x86
x64
,arm64
,arm
, ,s390x
,ppc64le
eriscv64
. Il valore predefinito è<auto>
, che rappresenta l'architettura del sistema operativo attualmente in esecuzione.-AzureFeed|--azure-feed
Solo per uso interno. Consente di usare una risorsa di archiviazione diversa da cui scaricare gli archivi SDK. Questo parametro viene usato solo se --no-cdn è falso. Il valore predefinito è
https://dotnetcli.azureedge.net/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.1
o8.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
version
esegue l'override del parametrochannel
quando 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-run
Se 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-credential
Usata come stringa di query da accodare al feed di Azure. Consente la modifica dell'URL per usare account di archiviazione BLOB pubblici.
--help
Stampa 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
.-NoCdn|--no-cdn
Disabilita il download dalla Rete di distribuzione dei contenuti di Azure (rete CDN) e usa direttamente il feed non memorizzato nella cache.
-NoPath|--no-path
Se 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.
-ProxyAddress
Se 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).-ProxyUseDefaultCredentials
Se 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
,signed
,validated
,preview
eGA
. La maggior parte degli utenti deve usare qualitàdaily
,preview
oGA
.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/installer
e 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.signed
: build firmate da Microsoft non convalidate o rilasciate pubblicamente. Le compilazioni firmate sono candidate per la convalida, l'anteprima e la versione GA. Questo livello di qualità non è destinato all'uso pubblico.validated
: le build che hanno eseguito alcuni test interni, ma non vengono ancora rilasciate come anteprima o disponibilità generale. Questo livello di qualità non è destinato all'uso pubblico.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
--quality
funziona solo in combinazione con--channel
, ma non è applicabile per i canaliSTS
eLTS
e verrà ignorata se viene usato uno di questi canali.Per un'installazione dell'SDK, usare un valore
channel
nel formatoA.B
oA.B.Cxx
. Per un'installazione di runtime, usarechannel
in formatoA.B
.Non usare entrambi i parametri
version
equality
. 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-runtime
Nota
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-files
Ignora l'installazione dei file senza versione, ad esempio dotnet.exe, se esistono già.
-UncachedFeed|--uncached-feed
Solo per uso interno. Consente di usare una risorsa di archiviazione diversa da cui scaricare gli archivi SDK. Questo parametro viene usato solo se --no-cdn è vero.
-KeepZip|--keep-zip
Se 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|--verbose
Visualizza 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,
-Version
viene impostata automaticamente sulatest
.
Esempi
Installare la versione LTS (Long Term Support) più recente nel percorso predefinito:
Windows:
./dotnet-install.ps1 -Channel LTS
macOS/Linux:
./dotnet-install.sh --channel LTS
Installare la versione di anteprima più recente dell'SDK 6.0.1xx nel percorso specificato:
Windows:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\cli
macOS/Linux:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cli
Installare la versione 6.0.0 del runtime condiviso:
Windows:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0
macOS/Linux:
./dotnet-install.sh --runtime dotnet --version 6.0.0
Ottenere 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:
Windows:
# 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>
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_ROOT
Questa variabile è impostata sulla cartella .NET installata, ad esempio
$HOME/.dotnet
per Linux e macOS e$HOME\.dotnet
in PowerShell per Windows.PATH
Questa variabile deve includere sia la cartella
DOTNET_ROOT
sia la cartella .dotnet/tools dell'utente . In genere si tratta di$HOME/.dotnet/tools
in Linux e macOS e$HOME\.dotnet\tools
in 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 comewget
ocurl
. - 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.sh
rispetto 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)