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.
Os scripts dnx e dnx.cmd já não usam o multiplexador .NET para selecionar a versão do SDK. Em vez disso, encontram o SDK instalado mais recente e invocam-no diretamente, o que contorna qualquer global.json ficheiro na pasta de trabalho.
Versão introduzida
.NET 10 SDK 10.0.302, 10.0.400 e .NET 11 Preview 6
Comportamento anterior
Anteriormente, os scripts dnx invocavam dotnet dnx, recorrendo ao muxer do .NET para selecionar a versão do SDK com base em qualquer ficheiro global.json no diretório de trabalho. Se global.json fixasse uma versão do SDK anterior à versão .NET 10, os scripts falhavam com o seguinte erro:
Unrecognized command or argument 'execute'
A partir do .NET SDK 10.0.302 do .NET 10 (e posteriores) e do .NET 11 Preview 6, os scripts dnx e dnx.cmd usam dotnet --list-sdks para identificar o SDK instalado mais recente. Depois invocam dotnet exec <sdk-path>/dotnet.dll dnx diretamente, contornando o muxer .NET e qualquer global.json fixação do SDK.
Tipo de mudança disruptiva
Esta mudança é uma mudança comportamental.
Motivo da mudança
Alguns comandos CLI .NET, incluindo dnx, são considerados funcionalidades independentes de versão que devem sempre funcionar com o SDK instalado mais recente. Depender do global.json significava que os utilizadores que fixavam uma versão mais antiga do SDK para reduzir o risco de alterações com impacto na compilação também acabavam por quebrar o dnx sem querer. Em pastas onde um SDK anterior ao .NET 10 estava afixado, o comando dnx não estava disponível, o que causava erros confusos e, em alguns casos, expiração do tempo limite em ferramentas como o Copilot CLI.
Ação recomendada
Para restaurar o comportamento anterior, em que o muxer .NET e global.json controlam a seleção do SDK, execute dotnet dnx explicitamente em vez do script dnx.
APIs afetadas
Nenhum.