Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O .NET já não procura ficheiros manifestos de ferramentas locais no diretório raiz no Windows, exceto se for substituído através da variável de ambiente DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
. Esta alteração não afeta o Linux ou macOS.
Comportamento anterior
Anteriormente, as ferramentas locais do .NET SDK verificavam a pasta raiz em todas as plataformas na busca por um manifesto de ferramentas. A pesquisa continuou do diretório atual até a árvore de diretórios até a pasta raiz até encontrar um manifesto. Em cada nível, o .NET procura o manifesto da ferramenta, chamado dotnet-tools.json, em uma subpasta .config . Em um sistema Windows, se nenhum outro manifesto de ferramenta foi encontrado, o SDK finalmente procurou um manifesto de ferramenta em C:\.config\dotnet-tools.js.
Novo comportamento
O .NET não pesquisa mais na pasta raiz da árvore de diretórios atual por padrão no Windows, a menos que seja substituído por meio da DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
variável de ambiente.
DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
é definido como false
por padrão.
Versão introduzida
- .NET SDK versão 7.0.3xx
- SDK do .NET 7.0.1xx
- SDK do .NET 6.0.4xx
- SDK do .NET 6.0.3xx
- SDK do .NET 6.0.1xx
- SDK .NET 3.1.4xx
Tipo de mudança disruptiva
Esta alteração é de natureza comportamental .
Motivo da mudança
Esta alteração foi feita para resolver um problema de segurança. Como todos os usuários podem criar arquivos e pastas no diretório C:\ no Windows, invasores de baixo privilégio podem sequestrar o C:\.config\dotnet-tools.jsno arquivo. Quando um administrador executa um dotnet
comando de ferramenta, a ferramenta pode potencialmente ler informações de configuração maliciosas do arquivo e baixar e executar ferramentas mal-intencionadas.
Ação recomendada
Para desativar o novo comportamento, defina a DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
variável de ambiente como true
ou 1
.