Resolução de problemas do dotnetup

Note

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

Este artigo descreve problemas comuns dotnetup e como os resolver.

Coletar informações de diagnóstico

Antes de solucionar um problema, recolhe esta informação:

  • Mostre a versão dotnetup, arquitetura, identificador de tempo de execução e as instalações verificadas:

    dotnetup --info
    
  • Mostrar as especificações e instalações rastreadas e verificar os ficheiros no disco:

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

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

    dotnetup sdk install 10.0 --verbosity detailed
    

Os projetos não são construídos ou as aplicações não começam após a configuração

Sintoma: Depois de configurar dotnetup no modo everywhere no Windows, os projetos que tinham sido construídos antes agora falham em compilar. Ou, aplicações dependentes do framework mostram este erro:

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

Causa: No everywhere modo, a instalação gerida pelo dotnetup tem prioridade sobre a instalação ao nível do sistema em Program Files. SDKs e runtimes que existem apenas na instalação para todo o sistema não estão disponíveis.

Solução: Migrar os SDKs e runtimes da máquina para a instalação gerida pelo dotnetup:

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

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

O dotnet não utiliza a instalação gerida pelo dotnetup

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

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

Solution:

  1. Abra um novo terminal. As alterações ao perfil do shell ou às variáveis de ambiente do Windows não afetam os terminais que já estão abertos.

  2. Execute dotnetup env show. Se reportar drift, execute dotnetup env set para aplicar novamente a configuração armazenada.

  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 mais informações, consulte Gerir 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 ficheiros rastreados numa pasta que contenha uma instalação .NET que não rastreia. Esta verificação impede que dotnetup misture os seus ficheiros com ficheiros que outra ferramenta possui.

Solução: Efetue um dos seguintes procedimentos:

  • Seleciona uma pasta diferente com essa --install-path opção.
  • Remova a instalação existente da pasta.
  • Se outra ferramenta for dona da pasta, usa a --untracked opção. dotnetup Não lista, atualiza nem remove ficheiros não rastreados.

Para mais informações, consulte Gerir raízes de instalação personalizadas.

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 dotnet executável, por isso dotnetup não pode substituí-lo. A instalação continua com o executável existente dotnet . Um novo runtime pode exigir um executável dotnet mais recente.

Solução: Feche todas as aplicações .NET, IDEs e servidores de construção em execução. Depois, execute novamente o comando de instalação. Para fazer o comando falhar, em vez de continuar com um aviso, use a --require-muxer-update opção.

Outro processo dotnetup está a correr

Sintoma: Um comando mostra esta mensagem e espera:

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

Causa:dotnetup isto serializa alterações ao estado partilhado de instalação. Outro dotnetup comando está a mudar o mesmo estado.

Solução: Esperar que o outro comando termine. Se não estiver em execução nenhum outro dotnetup processo, procura processos dotnetup que deixaram de responder e termina-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 indicar que o ficheiro foi modificado fora de dotnetup.

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

Solução: Apague o ficheiro manifest e o ficheiro .sha256 do diretório de dados dotnetup. Depois, reinstala os SDKs e os runtimes de que precisas. Como o manifesto já não rastreia a raiz da instalação existente, talvez também precises de apagar essa pasta primeiro. Para a localização do diretório de dados, consulte Update or remove dotnetup.

Note

Não edites o ficheiro manifest. Use comandos dotnetup para alterar o estado rastreado.

O ficheiro 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 ficheiro não é válido. dotnetup ignora o ficheiro.

Solução: Execute dotnetup env set com o modo de acesso que deseja, ou execute dotnetup init novamente. Estes comandos escrevem uma nova configuração.

Um perfil de shell contém um bloco 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 marca as linhas que adiciona a um perfil de shell com comentários de início e fim. Um destes comentários está em falta.

Solução: Abra o perfil do shell num editor de texto. Remova o bloco incompleto do dotnetup, ou adicione o marcador em falta. Em seguida, execute o comando novamente.

A elevação visual foi cancelada

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

Elevation was cancelled. The system PATH was not modified.

Causa: Alterações ao sistema PATH exigem elevação de privilégios. O aviso de Controlo de Conta de Utilizador (UAC) foi cancelado.

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

Um manifesto de lançamento expirou

Sintoma: Uma instalação ou atualização falha durante a verificação do manifesto de lançamento com o ExpiredNow código de falha.

Causa: A hora atual do sistema é igual ou posterior à hora de expiração do manifesto. O manifest pode estar expirado, ou o relógio do sistema pode estar incorreto. Uma assinatura válida não torna aceitável um manifesto expirado.

Solution:

  1. Verifique a data e hora do seu sistema. Corrige o relógio se for preciso.
  2. Repita o comando. Se um proxy fornece metadados de lançamento em cache, peça ao seu administrador para verificar se serve um manifesto expirado.
  3. Se o relógio estiver correto e a falha persistir, reporte o problema com a saída detalhada do comando.

Não edites o manifest nem alteres o relógio para contornar verificações de validade. Para mais informações, consulte Expiração do Manifesto.

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

Sintoma: Uma instalação de uma versão diária ou pré-lançamento falha com uma mensagem que diz que uma política de TI exige downloads assinados por código.

Causa: Um administrador bloqueou downloads não assinados na máquina.

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

Comunicar um problema

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

Para perguntas e sugestões, use discussões do dotnetup.

Ver também