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:

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.

Recomendamos que você use a versão estável dos scripts:

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, instale as dependências necessárias.

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, armarm64, s390x, e ppc64le. 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 ou 8.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 o channel 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, , previewvalidated, e GA. A maioria dos usuários deve usar daily, preview, ou GA 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 o dotnet/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 os STS canais e LTS e será ignorada se um desses canais for usado.

    Para uma instalação do SDK, use um channel valor que esteja em A.B ou A.B.Cxx format. Para uma instalação em tempo de execução, use channel no A.B formato.

    Não use ambos e versionquality parâmetros. Quando quality é 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: O Microsoft.NETCore.App tempo de execução compartilhado.
    • aspnetcore: O Microsoft.AspNetCore.App tempo de execução compartilhado.
    • windowsdesktop O Microsoft.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, , freebsdlinux-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:

  1. 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.
  2. 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.
  3. 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 como wget ou curl.
  4. Verifique a assinatura: Para verificar a assinatura do nosso script bash, execute o comando gpg --verify dotnet-install.sig dotnet-install.sh. Isso verificará a dotnet-install.sh assinatura do arquivo em relação à assinatura no dotnet-install.sig arquivo.
  5. 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.

Consulte também