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:

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.

È consigliabile usare la versione stabile degli script:

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, installare le dipendenze necessarie.

È 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 consentiti sono <auto>, amd64, x64, x86, arm64, arm, s390x e ppc64le. 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 o 8.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 parametro channel quando viene usata una versione diversa da latest.

    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 e GA. La maggior parte degli utenti deve usare qualità daily, previewo GA.

    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 repository dotnet/installer e quindi se si cercano correzioni da dotnet/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 canali STS e LTS e verrà ignorata se viene usato uno di questi canali.

    Per un'installazione dell'SDK, usare un valore channel nel formato A.B o A.B.Cxx. Per un'installazione di runtime, usare channel in formato A.B.

    Non usare entrambi i parametri version e quality. Quando si specifica quality, 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 condiviso Microsoft.NETCore.App.
    • aspnetcore: runtime condiviso Microsoft.AspNetCore.App.
    • windowsdesktop: runtime condiviso Microsoft.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 su latest.

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:

  1. 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.
  2. 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.
  3. 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 come wget o curl.
  4. 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 file dotnet-install.sh rispetto alla firma nel file dotnet-install.sig.
  5. 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