Como funciona o dotnetup

Note

dotnetup está em pré-visualização pública. As suas funcionalidades e comportamento podem mudar antes da disponibilidade geral.

dotnetup separa o que solicitas dos ficheiros que ele instala. Este modelo permite que várias aplicações partilhem uma única instalação .NET e permite dotnetup remover ficheiros que já não são necessários.

Diretórios raiz da instalação

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

  • Um caminho de diretório totalmente qualificado.
  • Uma arquitetura: x86, x64, ou arm64.
  • Nenhuma ou mais especificações de instalação, especificadas por channels.
  • Zero ou mais instalações concretas.

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

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

Platform Raiz de instalação por defeito
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

Utilize --install-path para selecionar outra raiz de instalação. Um caminho de instalação explícito tem precedência sobre um caminho proveniente de global.json, que tem precedência sobre a raiz padrão da instalação.

dotnetupnão escreve num diretório .NET gerido pelo sistema, como Program Files\dotnet ou /usr/share/dotnet.

Componentes

dotnetup gere estes tipos de componentes:

Component Nome da especificação de runtime Conteúdo instalado
SDK para .NET Não aplicável SDK, host, runtime, pacotes de destino e conteúdo relacionado com SDKs
Tempo de execução do .NET runtime Microsoft.NETCore.App tempo de execução
runtime do ASP.NET Core aspnetcore Microsoft.AspNetCore.App runtime
runtime do Windows Desktop windowsdesktop Microsoft.WindowsDesktop.Appruntime no Windows

Os alias aspnet ASP.NET Core e o alias desktop Windows Desktop são aceites nas especificações de componentes em tempo de execução.

Especificações de instalação

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

Pode aprender mais sobre os diferentes tipos de canais suportados e versões em Channels e versões.

Cada especificação tem uma destas fontes:

  • Explicit: Indicou o canal ou a versão na linha de comandos.
  • GlobalJson: dotnetup deriva o requisito do SDK a partir de um ficheiro global.json.

All é um filtro de desinstalação. Não é armazenado como fonte de especificação.

Uma versão exata é uma especificação afixada. Os comandos de atualização não o fazem avançar. Uma especificação de canal pode ser resolvida para uma versão mais recente durante uma atualização.

Instalações e ficheiros partilhados

Uma instalação regista uma versão concreta de componente e os diretórios de subcomponentes que utiliza. Duas especificações podem corresponder à mesma instalação.

Os comandos de desinstalação removem primeiro as especificações correspondentes. A recolha de garbage mantém então a versão mais recente instalada que corresponde a cada especificação restante. Remove uma instalação e os seus subcomponentes não partilhados apenas quando nenhuma especificação restante os exige.

Instalações rastreadas e não rastreadas

Por defeito, um comando de instalação regista a sua especificação e o resultado no manifest. Uma instalação rastreada pode ser listada, atualizada e removida por dotnetup.

A opção --untracked instala ficheiros sem os registar. dotnetup não lista, atualiza nem remove esses ficheiros. Use esta opção apenas quando outro processo for dono do diretório de destino.

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

Ficheiros de estado

O diretório de dados dotnetup contém estes ficheiros de estado ao nível do utilizador:

Ficheiro Purpose
dotnetup_manifest.json Acompanha as raízes da instalação, especificações de instalação, instalações e subcomponentes partilhados.
dotnetup_manifest.json.sha256 Deteta alterações ao conteúdo do manifesto que o dotnetup não escreveu.
dotnetup.config.json Armazena o modo de acesso do .NET e se o diretório dotnetup está em PATH.

Não edite estes ficheiros. Utilize os comandos dotnetup install, update, uninstall e env para alterar o estado relacionado.

DOTNET_DOTNETUP_DATA_DIRA variável ambiente altera o diretório de dados. A opção --manifest-path altera apenas o manifesto usado por um comando. Não altera o ficheiro de configuração nem a raiz da instalação por defeito.

Operações simultâneas

Os fluxos de trabalho de instalar, atualizar, desinstalar, listar e recolha de lixo coordenam o acesso ao estado partilhado da instalação. Um comando que aceita várias especificações resolve-as antes da instalação e pode descarregá-las simultaneamente. As alterações do manifesto continuam serializadas.

Ver também