Como funciona o dotnetup

Note

dotnetup está em versão prévia pública. Seus recursos e comportamento podem mudar antes da disponibilidade geral.

dotnetup separa o que você pede dos arquivos que ele instala. Esse modelo permite que vários aplicativos compartilhem uma instalação do .NET e permite dotnetup remover arquivos que não são mais necessários.

Diretórios raiz de instalação

Uma raiz de instalação .NET é um diretório que dotnetup monitora. Uma raiz de instalação tem:

  • Um caminho de diretório totalmente qualificado.
  • Uma arquitetura: x86, x64ou arm64.
  • Zero ou mais especificações de instalação, especificadas como channels.
  • Zero ou mais instalações específicas.

A CLI atual instala para a arquitetura do processo dotnetup em execução. Não há uma opção de arquitetura.

A raiz de instalação de .NET gerenciada por dotnetup padrão é o dotnet subdiretório do diretório de dados dotnetup:

Platform Raiz de instalação padrão
Windows %LOCALAPPDATA%\dotnetup\dotnet
macOS ~/Library/Application Support/dotnetup/dotnet
Linux $XDG_DATA_HOME/dotnetup/dotnet, ou ~/.local/share/dotnetup/dotnet quando XDG_DATA_HOME não está definido

Use --install-path para selecionar outro diretório raiz da instalação. Um caminho de instalação explícito tem precedência sobre um caminho de global.json, que tem precedência sobre a raiz de instalação padrão.

dotnetupnão grava em um diretório de .NET gerenciado pelo sistema, como Program Files\dotnet ou /usr/share/dotnet.

Componentes

dotnetup gerencia esses tipos de componente:

Componente Nome da especificação do runtime Conteúdo instalado
SDK do .NET Não aplicável SDK, host, runtime, pacotes de destino e conteúdo relacionado do SDK
Runtime do .NET runtime Microsoft.NETCore.App runtime
ASP.NET Core runtime aspnetcore Microsoft.AspNetCore.App runtime
Runtime da área de trabalho do Windows windowsdesktop Microsoft.WindowsDesktop.Appruntime no Windows

Os aliases aspnet de ASP.NET Core e o alias da área de trabalho Windows desktop são aceitos nas especificações do componente de runtime.

Especificações de instalação

Uma especificação de instalação registra um componente e um canal ou uma versão exata. Por exemplo, uma especificação do SDK para 10.0.1xx significa "manter o SDK mais recente na faixa de recursos 10.0.1xx".

Você pode saber mais sobre os diferentes tipos de canais e versões com suporte em Canais e versões.

Cada especificação tem uma destas fontes:

  • Explicit: você forneceu o canal ou a versão na linha de comando.
  • GlobalJson: dotnetup derivou o requisito do SDK de um arquivo global.json.

All é um filtro de desinstalação. Ele não é armazenado como uma fonte de especificação.

Uma versão fixada é uma especificação fixada. Os comandos de atualização não fazem com que ele avance. Uma especificação de canal pode ser resolvida para uma versão mais recente durante uma atualização.

Instalações e arquivos compartilhados

Uma instalação registra uma versão de componente concreta e os diretórios de subcomponente que ela usa. Duas especificações podem resultar na mesma instalação.

Os comandos de desinstalação primeiro removem as especificações correspondentes. Em seguida, a coleta de lixo mantém a versão mais recente instalada que corresponde a cada especificação restante. Ele remove uma instalação e seus subcomponentes não compartilhados somente quando nenhuma especificação restante precisa deles.

Instalações rastreadas e não rastreadas

Por padrão, um comando de instalação registra sua especificação e resultado no manifesto. Uma instalação rastreada pode ser listada, atualizada e removida por dotnetup.

A opção --untracked instala arquivos sem registrá-los. dotnetup não lista, atualiza ou remove esses arquivos. Use essa opção somente quando outro processo possuir o diretório de destino.

Para evitar a mistura acidental, uma instalação rastreada falhará se o destino contiver uma instalação existente do .NET que não esteja no manifesto selecionado. Selecione um diretório diferente, remova a instalação existente ou use --untracked.

Arquivos de estado

O diretório de dados dotnetup contém estes arquivos de estado no nível do usuário:

File Purpose
dotnetup_manifest.json Controla raízes de instalação, especificações de instalação, instalações e subcomponentes compartilhados.
dotnetup_manifest.json.sha256 Detecta alterações no conteúdo de manifesto que o dotnetup não gravou.
dotnetup.config.json Armazena o modo de acesso .NET e se o diretório dotnetup está em PATH.

Não edite esses arquivos. Use os comandos dotnetup install, update, uninstall e env para alterar o estado relacionado.

A variável de ambiente DOTNET_DOTNETUP_DATA_DIR altera o diretório de dados. A opção --manifest-path altera apenas o manifest usado por um comando. Ele não altera o arquivo de configuração nem a raiz de instalação padrão.

Operações simultâneas

Instalação, atualização, desinstalação, listagem e coleta de lixo coordenam o acesso ao estado de instalação compartilhado. Um comando que aceita várias especificações as resolve antes da instalação e pode baixá-las simultaneamente. As alterações de manifesto permanecem serializadas.

Consulte também