Referência de scripts dotnet-install
Nome
dotnet-install.ps1
| dotnet-install.sh
- Script usado para instalar o SDK .NET e o tempo de execução compartilhado.
Sinopse
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
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.
Description
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
, ,arm
arm64
,s390x
,ppc64le
eriscv64
. O valor padrão é<auto>
, que representa a arquitetura do sistema operacional em execução no momento.-AzureFeed|--azure-feed
Apenas para uso interno. Permite usar um armazenamento diferente para baixar arquivos SDK. Este parâmetro só é usado se --no-cdn for false. A predefinição é
https://dotnetcli.azureedge.net/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.1
ou8.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
version
parâmetro substitui ochannel
parâmetro quando qualquer versão diferente élatest
usada.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-run
Se 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-credential
Usado 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.
--help
Imprime 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
.-NoCdn|--no-cdn
Desabilita o download da CDN (Rede de Entrega de Conteúdo) do Azure e usa o feed não armazenado em cache diretamente.
-NoPath|--no-path
Se 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.
-ProxyAddress
Se 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.)-ProxyUseDefaultCredentials
Se 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
,signed
, ,preview
validated
, eGA
. A maioria dos usuários deve usardaily
,preview
, ouGA
qualidades.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/sdk
, deve esperar que o código flua e seja mesclado do SDK para odotnet/installer
instalador antes de aparecer em uma compilação diária.signed
: compilações assinadas pela Microsoft que não são validadas ou lançadas publicamente. Compilações assinadas são candidatas para validação, visualização e liberação GA. Este nível de qualidade não se destina a utilização pública.validated
: Compilações que tiveram alguns testes internos feitos nelas, mas ainda não foram lançadas como visualização ou GA. Este nível de qualidade não se destina a utilização pública.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
--quality
opção funciona apenas em combinação com--channel
, mas não é aplicável para osSTS
canais eLTS
e será ignorada se um desses canais for usado.Para uma instalação do SDK, use um
channel
valor que esteja emA.B
ouA.B.Cxx
format. Para uma instalação em tempo de execução, usechannel
noA.B
formato.Não use ambos e
version
quality
parâ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.App
tempo de execução compartilhado.aspnetcore
: OMicrosoft.AspNetCore.App
tempo de execução compartilhado.windowsdesktop
OMicrosoft.WindowsDesktop.App
tempo 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
, ,freebsd
linux-musl
.O parâmetro é opcional e só deve ser usado quando for necessário substituir o sistema operacional detetado pelo script.
-SharedRuntime|--shared-runtime
Nota
Este parâmetro está obsoleto e pode ser removido em uma versão futura do script. A alternativa recomendada é a
-Runtime|--runtime
opçã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-files
Ignora a instalação de arquivos sem versão, como dotnet.exe, se eles já existirem.
-UncachedFeed|--uncached-feed
Apenas para uso interno. Permite usar um armazenamento diferente para baixar arquivos SDK. Este parâmetro só é usado se --no-cdn for true.
-KeepZip|--keep-zip
Se 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|--verbose
Exibe 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-Channel
opção).- Versão em três partes no formato X.Y.Z representando uma versão de compilação específica; substitui a
-Channel
opção. Por exemplo:2.0.0-preview2-006120
.
Se não for especificado,
-Version
o padrão serálatest
.
Exemplos
Instale a versão mais recente com suporte de longo prazo (LTS) no local padrão:
Windows:
./dotnet-install.ps1 -Channel LTS
macOS/Linux:
./dotnet-install.sh --channel LTS
Instale a versão de visualização mais recente do SDK 6.0.1xx no local especificado:
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
Instale a versão 6.0.0 do tempo de execução compartilhado:
Windows:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0
macOS/Linux:
./dotnet-install.sh --runtime dotnet --version 6.0.0
Obtenha 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:
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>
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_ROOT
Essa variável é definida como a pasta na qual o .NET foi instalado, como
$HOME/.dotnet
para Linux e macOS, e$HOME\.dotnet
no PowerShell para Windows.PATH
Essa variável deve incluir a
DOTNET_ROOT
pasta e a pasta .dotnet/tools do usuário. Geralmente isso ocorre$HOME/.dotnet/tools
no Linux e macOS, e$HOME\.dotnet\tools
no 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 comowget
oucurl
. - 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.sh
assinatura do arquivo em relação à assinatura nodotnet-install.sig
arquivo. - 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.