Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Note
dotnetup está em versão prévia pública. Seus recursos e comportamento podem mudar antes da disponibilidade geral.
O Dotnetup pode configurar o ambiente para disponibilizar o .NET SDKs e Runtimes que ele instala. Ele faz isso definindo as seguintes variáveis de ambiente:
-
PATH: disponibiliza odotnetcomando na linha de comando. Ferramentas de desenvolvimento, como Visual Studio ou C# Dev Kit, também usam oPATHpara localizar .NET SDKs e Runtimes. -
DOTNET_ROOT: informa aos executáveis de aplicativo dependentes de estrutura onde encontrar uma instalação .NET e seus runtimes compartilhados.
O Dotnetup dá suporte a diferentes modos de acesso que controlam onde essas variáveis de ambiente são definidas. Você pode escolher um modo de acesso na configuração inicial do dotnetup ou mais tarde com o comando dotnetup env.
| Modo de acesso | Behavior |
|---|---|
none |
Não modifica essas variáveis de ambiente. Execute o .NET com dotnetup dotnet. |
shell |
Modifica o perfil do shell para definir essas variáveis de ambiente. Os processos iniciados a partir desse shell usam os SDKs e runtimes .NET instalados pelo dotnetup. |
everywhere |
Modifica o sistema PATH e define a variável de ambiente DOTNET_ROOT no nível do usuário. Disponível somente em Windows. |
Por padrão, o dotnetup também se adiciona ao PATH, independentemente da configuração do modo de acesso. Isso pode ser controlado com dotnetup env set --dotnetup-on-path <true|false>.
Considerações sobre o modo Everywhere
O modo Everywhere é o padrão no Windows para que SDKs e runtimes instalados pelo dotnetup estejam disponíveis em ferramentas de desenvolvimento e em terminais usando cmd como shell. No entanto, há algumas coisas a serem observadas, principalmente em torno de como ele interage com instalações em nível de máquina do SDK e do Runtime do .NET.
As instalações do .NET para todo o sistema estão localizadas na pasta Arquivos de Programas. Eles podem ser instalados com instaladores que podem ser baixados na página de downloads do .NET. O Visual Studio instala o SDK e o Runtime do .NET em toda a máquina, e os instaladores para aplicativos dependentes de framework também podem instalar o Runtime do .NET do qual dependem no local em toda a máquina.
No modo global, a raiz de instalação do .NET gerenciada pelo dotnetup no usuário local substituirá a raiz de instalação do .NET no nível da máquina. Isso significa que .NET SDKs e Runtimes instalados em Program Files não estarão disponíveis. Os projetos que dependem desses SDKs falharão ao serem compilados se um SDK correspondente não estiver instalado. Se um runtime correspondente não estiver instalado, os aplicativos dependentes de estrutura falharão ao iniciar com um erro que diz "Você deve instalar ou atualizar o .NET para executar este aplicativo".
Para evitar essas falhas, a configuração inicial do dotnetup oferece a opção de migrar as instalações existentes do SDK e do Runtime do .NET no sistema. Você também pode migrá-los explicitamente executando dotnetup sdk install --migrate-from-system para SDKs ou dotnetup runtime install --migrate-from-system para runtimes.
Ativar ou desativar o modo global requer a modificação do PATH do sistema, que requer elevação (ou seja, uma aprovação do prompt do UAC ou "Executar como Administrador"). Isso ocorre porque os instaladores para todo o sistema do .NET adicionam a raiz de instalação do .NET em Program Files ao PATH do sistema, e o PATH do sistema tem precedência sobre o PATH no nível do usuário ao resolver comandos. Portanto, o dotnetup precisa modificar o PATH do sistema para fazer com que a raiz de instalação do .NET do dotnetup tenha precedência.
Como o PATH do sistema se aplica a todos os usuários, essas alterações podem afetar outros usuários. O caminho que é adicionado ao PATH do sistema fica, por padrão, na pasta AppData local do usuário. Normalmente, isso não será acessível a outros usuários, portanto, não afetará qual versão de dotnet será resolvida. No entanto, processos elevados (ou seja, em execução como Administrador) seriam capazes de ler o caminho e poderiam acabar resolvendo inesperadamente .NET SDKs ou Runtimes de outro usuário.
Shells suportados
Suporte à geração de perfil e script:
- Bash
- Z shell
- Peixe
- Pwsh (PowerShell Core)
- PowerShell
Se você não passar --shell, dotnetup detectará o shell atual. Use um shell explícito quando a detecção não estiver disponível ou quando você quiser atualizar um perfil diferente:
dotnetup env set shell --shell zsh
Estado armazenado e observado
dotnetup.config.json armazena o modo de acesso selecionado e se dotnetup deve estar ativado em PATH.
dotnetup env show compara essa configuração com o perfil e o ambiente atuais. Ele relatará desvio se o estado observado não corresponder.
Reaplique a configuração armazenada para corrigir o desvio de configuração:
dotnetup env set
Terminal atual
As alterações de perfil e do ambiente do Windows não reescrevem o ambiente do processo atual. Abra um novo terminal, carregue o perfil modificado ou avalie o script gerado.
Para shell Bash ou Z:
eval "$(dotnetup env script)"
Para PowerShell:
dotnetup env script --shell pwsh | Invoke-Expression
env script segue a configuração armazenada quando você não passa as opções de seleção. Use --dotnet, --dotnetup ou ambos para selecionar o conteúdo gerado.
Remover a configuração de ambiente
Remova todas as conexões do ambiente gerenciado:
dotnetup env clear
Esse comando é equivalente a:
dotnetup env set none --dotnetup-on-path false
Ele não desinstala SDKs ou runtimes.