Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Nota
O comportamento do script de instalação foi alterado. Ele baixa o .NET de novos locais de rede. Para obter mais informações, consulte Crítico: Os links de instalação do .NET estão mudando.
Nome
dotnet-install.ps1
|
dotnet-install.sh - Script usado para instalar o SDK .NET e o tempo de execução compartilhado.
Sinopse
Janelas:
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
O script bash também lê os switches do PowerShell, para que você possa usar os switches do PowerShell com o script em sistemas Linux/macOS.
Descrição
Os dotnet-install scripts executam uma instalação não administrativa do SDK do .NET, que inclui a CLI do .NET e o tempo de execução compartilhado. Existem dois scripts:
- Um script do PowerShell que funciona no Windows. Para obter instruções de instalação, consulte Instalar no Windows.
- Um script bash que funciona em Linux/macOS. Para obter instruções de instalação, consulte Instalar no Linux e Instalar no macOS.
Nota
O .NET coleta dados de telemetria. Para saber mais e como desativar, consulte Telemetria do SDK do .NET.
Propósito
O uso pretendido dos scripts é para cenários de Integração Contínua (CI), onde:
O SDK precisa ser instalado sem interação do usuário e sem direitos de administrador.
A instalação do SDK não precisa persistir em várias execuções de CI.
A sequência típica de eventos:
- O IC é acionado.
- O CI instala o SDK usando um desses scripts.
- O CI conclui seu trabalho e limpa dados temporários, incluindo a instalação do SDK.
Para configurar um ambiente de desenvolvimento ou executar aplicativos, use os instaladores em vez desses scripts.
Versão recomendada
Recomendamos que você use a versão estável dos scripts:
- Bash (Linux/macOS): https://dot.net/v1/dotnet-install.sh
- PowerShell (Windows): https://dot.net/v1/dotnet-install.ps1
A fonte dos scripts está no repositório GitHub dotnet/install-scripts .
Comportamento do script
Ambos os scripts têm o mesmo comportamento. Eles baixam o arquivo ZIP/tarball das quedas de compilação da CLI e prosseguem para instalá-lo no local padrão ou em um local especificado pelo -InstallDir|--install-dir.
Por padrão, os scripts de instalação baixam o SDK e o instalam. Se desejar obter apenas o tempo de execução compartilhado, especifique o -Runtime|--runtime argumento.
Por padrão, o script adiciona o local de instalação ao $PATH da sessão atual. Substitua esse comportamento padrão especificando o -NoPath|--no-path argumento. O script não define a DOTNET_ROOT variável de ambiente.
Importante
O script não adiciona o local de instalação à variável de ambiente do PATH usuário, você deve adicioná-lo manualmente.
Antes de executar o script, certifique-se de que o seu sistema operativo é suportado. Para obter mais informações, consulte Instalar o .NET no Windows, Linux e macOS.
Você pode instalar uma versão específica usando o -Version|--version argumento. A versão deve ser especificada como um número de versão de três partes, como 2.1.0. Se a versão não for especificada, o script instalará a latest versão.
Os scripts de instalação não atualizam o registro no Windows. Eles apenas baixam os binários compactados e os copiam para uma pasta. Se desejar que os valores da chave do Registro sejam atualizados, use os instaladores do .NET.
Opções
-Architecture|--architecture <ARCHITECTURE>Arquitetura dos binários do .NET a serem instalados. Os valores possíveis são
<auto>,amd64,x64,x86, ,arm64arm,s390x,ppc64leeriscv64. O valor padrão é<auto>, que representa a arquitetura do sistema operacional em execução no momento.-AzureFeed|--azure-feedApenas para uso interno. Permite usar um armazenamento diferente para baixar arquivos SDK. A predefinição é
https://builds.dotnet.microsoft.com/dotnet.-Channel|--channel <CHANNEL>Especifica o canal de origem para a instalação. Os valores possíveis são:
-
STS: A versão mais recente do Standard Term Support. -
LTS: A versão mais recente do Suporte de Longo Prazo. - Versão em duas partes no formato A.B, representando uma versão específica (por exemplo,
3.1ou8.0). - Versão em três partes no formato A.B.Cxx, representando uma versão específica do SDK (por exemplo, 8.0.1xx ou 8.0.2xx). Disponível desde a versão 5.0.
O
versionparâmetro substitui ochannelparâmetro quando qualquer versão diferente élatestusada.O valor predefinido é
LTS. Para obter mais informações sobre os canais de suporte do .NET, consulte a página Política de suporte do .NET.-
-DryRun|--dry-runSe definido, o script não executará a instalação. Em vez disso, ele exibe qual linha de comando usar para instalar consistentemente a versão atualmente solicitada da CLI do .NET. Por exemplo, se você especificar a versão
latest, ele exibirá um link com a versão específica para que esse comando possa ser usado deterministicamente em um script de construção. Ele também exibe a localização do binário se você preferir instalá-lo ou baixá-lo por conta própria.-FeedCredential|--feed-credentialUsado como uma cadeia de caracteres de consulta para acrescentar ao feed do Azure. Ele permite alterar a URL para usar contas de armazenamento de blob não públicas.
--helpImprime ajuda para o script. Aplica-se apenas ao script bash. Para PowerShell, use
Get-Help ./dotnet-install.ps1.-InstallDir|--install-dir <DIRECTORY>Especifica o caminho de instalação. O diretório é criado se não existir. O valor padrão é %LocalAppData%\Microsoft\dotnet no Windows e $HOME/.dotnet no Linux/macOS. Os binários são colocados diretamente neste diretório.
-JSonFile|--jsonfile <JSONFILE>Especifica um caminho para um arquivo de global.json que será usado para determinar a versão do SDK. O arquivo global.json deve ter um valor para
sdk:version.-NoPath|--no-pathSe definida, a pasta de instalação não será exportada para o caminho da sessão atual. Por padrão, o script modifica o PATH, o que torna a CLI do .NET disponível imediatamente após a instalação.
-ProxyAddressSe definido, o instalador usa o proxy ao fazer solicitações da Web. (Válido apenas para Windows.)
-ProxyBypassList <LIST_OF_URLS>Se definido com
ProxyAddress, fornece uma lista de urls separadas por vírgulas que ignorarão o proxy. (Válido apenas para Windows.)-ProxyUseDefaultCredentialsSe definido, o instalador usa as credenciais do usuário atual ao usar o endereço proxy. (Válido apenas para Windows.)
-Quality|--quality <QUALITY>Baixa a compilação mais recente da qualidade especificada no canal. Os valores possíveis são:
daily,preview, eGA.Os diferentes valores de qualidade sinalizam diferentes estágios do processo de liberação do SDK ou Runtime instalado.
-
daily: As compilações mais recentes do SDK ou Runtime. Eles são construídos todos os dias e não são testados. Eles não são recomendados para uso em produção, mas geralmente podem ser usados para testar recursos ou correções específicos imediatamente após serem mesclados no produto. Essas compilações são do repositório e, portanto, se você estiver procurando por correçõesdotnet/installer, deve esperar que o código flua e seja mesclado do SDK para odotnet/sdkinstalador antes de aparecer em uma compilação diária. -
preview: As versões públicas mensais da próxima versão do .NET, destinadas ao uso público. Não recomendado para uso em produção. Destina-se a permitir que os usuários experimentem e testem a nova versão principal antes do lançamento. -
GA: As versões estáveis finais do .NET SDK e Runtime. Destinado ao uso público, bem como ao apoio à produção.
A
--qualityopção funciona apenas em combinação com--channel, mas não é aplicável para osSTScanais eLTSe será ignorada se um desses canais for usado.Para uma instalação do SDK, use um
channelvalor que esteja emA.BouA.B.Cxxformat. Para uma instalação em tempo de execução, usechannelnoA.Bformato.Não use ambos e
versionqualityparâmetros. Quandoqualityé especificado, o script determina a versão adequada por conta própria.Disponível desde a versão 5.0.
-
-Runtime|--runtime <RUNTIME>Instala apenas o tempo de execução compartilhado, não todo o SDK. Os valores possíveis são:
-
dotnet: OMicrosoft.NETCore.Apptempo de execução compartilhado. -
aspnetcore: OMicrosoft.AspNetCore.Apptempo de execução compartilhado. -
windowsdesktopOMicrosoft.WindowsDesktop.Apptempo de execução compartilhado.
-
--os <OPERATING_SYSTEM>Especifica o sistema operacional para o qual as ferramentas estão sendo instaladas. Os valores possíveis são:
osx,macos,linux, ,linux-muslfreebsd.O parâmetro é opcional e só deve ser usado quando for necessário substituir o sistema operacional detetado pelo script.
-SharedRuntime|--shared-runtimeNota
Este parâmetro está obsoleto e pode ser removido em uma versão futura do script. A alternativa recomendada é a
-Runtime|--runtimeopção.Instala apenas os bits de tempo de execução compartilhados, não o SDK inteiro. Esta opção é equivalente a especificar
-Runtime|--runtime dotnet.-SkipNonVersionedFiles|--skip-non-versioned-filesIgnora a instalação de arquivos sem versão, como dotnet.exe, se eles já existirem.
-UncachedFeed|--uncached-feedApenas para uso interno. Permite usar um armazenamento diferente para baixar arquivos SDK. Este parâmetro substitui
-AzureFeed|--azure-feed.-KeepZip|--keep-zipSe definido, o arquivo SDK baixado é mantido após a instalação.
-ZipPath|--zip-path <PATH>Se definido, o arquivo SDK baixado é armazenado no caminho especificado.
-Verbose|--verboseExibe informações de diagnóstico.
-Version|--version <VERSION>Representa uma versão de compilação específica. Os valores possíveis são:
-
latest: Última compilação no canal (usado com a-Channelopção). - Versão em três partes no formato X.Y.Z representando uma versão de compilação específica; substitui a
-Channelopção. Por exemplo:2.0.0-preview2-006120.
Se não for especificado,
-Versiono padrão serálatest.-
Exemplos
Instale a versão mais recente com suporte de longo prazo (LTS) no local padrão:
Janelas:
./dotnet-install.ps1 -Channel LTSmacOS/Linux:
./dotnet-install.sh --channel LTSInstale a versão de visualização mais recente do SDK 6.0.1xx no local especificado:
Janelas:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\climacOS/Linux:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cliInstale a versão 6.0.0 do tempo de execução compartilhado:
Janelas:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0macOS/Linux:
./dotnet-install.sh --runtime dotnet --version 6.0.0Obtenha o script e instale a versão 6.0.2 atrás de um proxy corporativo (somente 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;Obtenha scripts e instale exemplos de linha única da CLI do .NET:
Janelas:
# 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>Instale várias versões sem substituir
dotnetbinários de instalações anteriores.Se você instalar SDKs do .NET ou o tempo de execução do .NET de uma versão anterior sobre uma versão mais recente, precisará usar
--skip-non-versioned-filespara que os arquivos 'sem versão'dotnetda versão anterior não substituam os mesmos arquivos da versão mais 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]
Definir variáveis de ambiente
A instalação manual do .NET não adiciona as variáveis de ambiente em todo o sistema e, geralmente, só funciona para a sessão na qual o .NET foi instalado. Há duas variáveis de ambiente que você deve definir para seu sistema operacional:
DOTNET_ROOTEssa variável é definida como a pasta na qual o .NET foi instalado, como
$HOME/.dotnetpara Linux e macOS, e$HOME\.dotnetno PowerShell para Windows.PATHEssa variável deve incluir a
DOTNET_ROOTpasta e a pasta .dotnet/tools do usuário. Geralmente isso ocorre$HOME/.dotnet/toolsno Linux e macOS, e$HOME\.dotnet\toolsno PowerShell no Windows.
Gorjeta
Para Linux e macOS, use o echo comando para definir as variáveis em seu perfil de shell, como .bashrc:
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc
Desinstale o .
Não há script de desinstalação. Para obter informações sobre como desinstalar manualmente o .NET, consulte Como remover o .NET Runtime e SDK.
Validação de assinatura de dotnet-install.sh
A validação de assinatura é uma medida de segurança importante que ajuda a garantir a autenticidade e a integridade de um script. Ao verificar a assinatura de um script, você pode ter certeza de que ele não foi adulterado e que vem de uma fonte confiável.
Aqui está um guia passo a passo sobre como verificar a dotnet-install.sh autenticidade do script usando GPG:
- Instale o GPG: GPG (GNU Privacy Guard) é uma ferramenta gratuita e de código aberto para criptografar e assinar dados. Você pode instalá-lo seguindo as instruções no site do GPG.
-
Importe a nossa chave pública: Transfira o ficheiro de chave pública install-scripts e, em seguida, importe-o para o seu porta-chaves GPG executando o comando
gpg --import dotnet-install.asc. -
Faça o download do arquivo de assinatura: O arquivo de assinatura para nosso script bash está disponível em
https://dot.net/v1/dotnet-install.sig. Você pode baixá-lo usando uma ferramenta comowgetoucurl. -
Verifique a assinatura: Para verificar a assinatura do nosso script bash, execute o comando
gpg --verify dotnet-install.sig dotnet-install.sh. Isso verificará adotnet-install.shassinatura do arquivo em relação à assinatura nodotnet-install.sigarquivo. -
Verifique o resultado: Se a assinatura for válida, você verá uma mensagem contendo
Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>". Isso significa que o script não foi adulterado e pode ser confiável.
Ambiente de preparação
Instalar o GPG e importar nossa chave pública é uma operação única.
sudo apt install gpg
wget https://dot.net/v1/dotnet-install.asc
gpg --import dotnet-install.asc
Quando bem-sucedido, você verá a saída da seguinte forma:
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ção
Com a chave importada, agora você pode baixar o script e a assinatura e, em seguida, verificar se o script corresponde à assinatura:
wget https://dot.net/v1/dotnet-install.sh
wget https://dot.net/v1/dotnet-install.sig
gpg --verify dotnet-install.sig dotnet-install.sh
Quando bem-sucedido, você verá a saída da seguinte forma:
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
O aviso significa que você não confia na chave pública no chaveiro, mas o script ainda é verificado. O código de saída retornado pelo comando de verificação deve ser 0, indicando sucesso.