Solucionar problemas de dotnetup

Note

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

Este artigo descreve problemas comuns dotnetup e como corrigi-los.

Recolher informações de diagnóstico

Antes de solucionar um problema, colete estas informações:

  • Mostrar a dotnetup versão, a arquitetura, o identificador de runtime e as instalações verificadas:

    dotnetup --info
    
  • Mostre as especificações de instalação rastreadas e instalações, e verifique os arquivos em disco:

    dotnetup list
    
  • Compare a configuração de ambiente armazenado com o ambiente atual:

    dotnetup env show
    
  • Execute o comando com falha novamente com saída detalhada. Por exemplo:

    dotnetup sdk install 10.0 --verbosity detailed
    

Os projetos não são compilados ou os aplicativos não são iniciados após a instalação

Sintoma: Depois de configurar dotnetup no modo everywhere no Windows, os projetos que antes eram compilados agora falham na compilação. Ou, os aplicativos dependentes de framework mostram este erro:

You must install or update .NET to run this application.

Causa: No modo everywhere, a instalação gerenciada pelo dotnetup tem precedência sobre a instalação em nível de máquina no Program Files. SDKs e runtimes que existem apenas na instalação para todo o computador não estão disponíveis.

Solução: Migre os SDKs e runtimes em todo o sistema para a instalação gerenciada pelo dotnetup:

dotnetup sdk install --migrate-from-system
dotnetup runtime install --migrate-from-system

Ou altere para o modo de acesso none ou shell. Para obter mais informações, consulte as considerações sobre o modo Everywhere.

o dotnet não usa a instalação gerenciada por dotnetup

Sintoma: O comando dotnet em seu terminal não usa os SDKs que dotnetup instalou.

Causa: O terminal foi aberto antes de dotnetup alterar o ambiente, ou a configuração do ambiente não corresponde à configuração armazenada.

Solution:

  1. Abrir um novo Terminal. As alterações no perfil do shell ou nas variáveis de ambiente do Windows não afetam os terminais que já estão abertos.

  2. Execute dotnetup env show. Se ele relatar descompasso, execute dotnetup env set para aplicar a configuração armazenada novamente.

  3. Para configurar apenas o terminal atual, avalie a saída de dotnetup env script. Por exemplo, em Bash ou zsh:

    eval "$(dotnetup env script)"
    

    No PowerShell:

    dotnetup env script --shell pwsh | Invoke-Expression
    

Para obter mais informações, consulte Gerenciar o ambiente dotnetup.

O caminho de instalação já contém uma instalação não rastreada

Sintoma: Um comando de instalação falha com este erro:

The install path '<path>' already contains a .NET installation that is not tracked by dotnetup. To avoid conflicts, use a different install path, remove the existing installation first, or use the --untracked option to install without tracking.

Causa:dotnetup não instala arquivos rastreados em uma pasta que contém uma instalação .NET que ele não rastreia. Essa verificação impede que dotnetup misture seus arquivos com arquivos que outra ferramenta possui.

Solução: Siga um destes procedimentos:

  • Selecione uma pasta diferente com a opção --install-path .
  • Remova a instalação existente da pasta.
  • Se outra ferramenta possuir a pasta, use a opção --untracked. dotnetup não lista, não atualiza nem remove arquivos não rastreados.

Para obter mais informações, consulte Gerenciar diretórios de instalação personalizados.

O executável dotnet está em uso

Sintoma: No Windows, um comando de instalação mostra um aviso semelhante a esta mensagem:

Warning: Could not update dotnet executable at '<path>' - it is currently in use by another process. Close all running .NET applications and try again. The existing muxer will be retained. ...

Causa: Um processo em execução usa o executável dotnet, portanto dotnetup não pode substituí-lo. A instalação continua com o executável existente dotnet . Um novo runtime pode exigir um dotnet executável mais recente.

Solução: Feche todos os aplicativos .NET em execução, IDEs e servidores de build. Em seguida, execute o comando de instalação novamente. Para fazer o comando falhar em vez de continuar com um aviso, use a opção --require-muxer-update .

Outro processo dotnetup está em execução

Sintoma: Um comando mostra esta mensagem e aguarda:

Another dotnetup process is running. Waiting for it to finish...

Causa:dotnetup serializa as alterações no estado de instalação compartilhada. Outro dotnetup comando está alterando o mesmo estado.

Solução: Aguarde até que o outro comando seja concluído. Se nenhum outro dotnetup processo for executado, procure dotnetup processos que pararam de responder e encerre-os.

O manifest está corrompido

Sintoma: Um comando falha com este erro:

The dotnetup manifest at <path> is corrupt. Consider deleting it and re-running the install.

A mensagem também pode dizer que o arquivo foi modificado fora de dotnetup.

Causa: O dotnetup_manifest.json arquivo não é válido. Outro processo ou uma edição manual pode ter alterado o arquivo.

Solução: Exclua o arquivo de manifesto e seu .sha256 arquivo do diretório de dados do dotnetup. Em seguida, reinstale os SDKs e os runtimes necessários. Como o manifesto não rastreia mais a raiz de instalação existente, talvez você também precise excluir essa pasta primeiro. Para obter o local do diretório de dados, consulte Atualizar ou remover dotnetup.

Note

Não edite o arquivo de manifesto. Use comandos dotnetup para alterar o estado rastreado.

O arquivo de configuração está corrompido

Sintoma: Um comando mostra este aviso:

Warning: The dotnetup config file at <path> appears to be corrupted and could not be read: ...

Causa: O dotnetup.config.json arquivo não é válido. dotnetup ignora o arquivo.

Solução: Execute dotnetup env set com o modo de acesso desejado ou execute dotnetup init novamente. Esses comandos gravam uma nova configuração.

Um perfil de shell contém um bloco de dotnetup malformado

Sintoma: Um env comando falha com um erro semelhante a esta mensagem:

The shell profile '<path>' contains a malformed dotnetup block: '<begin marker>' does not have a matching '<end marker>'. Remove or repair the block manually and try again.

Causa:dotnetup identifica as linhas que adiciona a um perfil de shell com comentários de início e de término. Um desses comentários está ausente.

Solução: Abra o perfil do shell em um editor de texto. Remova o bloco dotnetup incompleto ou adicione o marcador ausente. Depois, execute o comando novamente.

A Elevation foi cancelada

Sintoma: No Windows, um comando que ativa ou desativa everywhere o modo mostra esta mensagem:

Elevation was cancelled. The system PATH was not modified.

Causa: As alterações no sistema PATH exigem elevação de privilégios. O prompt do UAC (Controle de Conta de Usuário) foi cancelado.

Solução: Execute o comando novamente e aprove o prompt UAC. Ou selecione o modo de acesso shell ou none, que não requer elevação.

Um manifesto de release expirou

Sintoma: Uma instalação ou atualização falha durante a verificação do release-manifest com o código de falha ExpiredNow.

Causa: A hora atual do sistema está no horário de expiração do manifesto ou após ele. O manifest pode ter expirado ou o relógio do sistema pode estar incorreto. Uma assinatura válida não torna um manifesto expirado aceitável.

Solution:

  1. Verifique a data e a hora do sistema. Corrija o relógio, se necessário.
  2. Tente executar o comando novamente. Se um proxy serve metadados de versão armazenados em cache, peça ao administrador para verificar se ele fornece um manifesto expirado.
  3. Se o relógio estiver correto e a falha persistir, relate o problema com a saída detalhada do comando.

Não edite o manifest nem altere o relógio para ignorar as verificações de expiração. Para obter mais informações, consulte Expiração do manifesto.

Uma instalação está bloqueada por uma política de TI

Sintoma: Uma instalação de um build diário ou de pré-lançamento falha com uma mensagem informando que uma política de TI requer downloads assinados por código.

Causa: Um administrador bloqueou downloads não assinados no computador.

Solução: Instale uma versão lançada ou peça ao administrador para remover a política. Para obter mais informações, consulte Como o dotnetup verifica os downloads.

Relatar um problema

Se este artigo não resolver o problema, pesquise os problemas existentes do dotnetup. Se você não encontrar uma correspondência, abra um novo problema no repositório dotnet/sdk com o modelo de problema do dotnetup . Inclua a saída de dotnetup --info e a saída do comando com falha com --verbosity detailed.

Para perguntas e sugestões, use dotnetup discussions.

Consulte também