Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les scripts dnx et dnx.cmd n’utilisent plus le muxer .NET pour sélectionner la version du SDK. Au lieu de cela, ils trouvent le sdk installé le plus récent et l’appellent directement, ce qui contourne tout global.json fichier dans le répertoire de travail.
Version introduite
.NET 10 SDK 10.0.302, 10.0.400 et .NET 11 Preview 6
Comportement antérieur
Auparavant, les scripts dnx invoquaient dotnet dnx, qui s’appuyait sur le multiplexeur .NET pour sélectionner la version du SDK en fonction de tout fichier global.json présent dans le répertoire de travail. Si global.json a épinglé une version du SDK antérieure à .NET 10, les scripts ont échoué avec l’erreur suivante :
Unrecognized command or argument 'execute'
À partir de .NET 10 SDK 10.0.302 (et versions ultérieures) et de .NET 11 Preview 6, les scripts dnx et dnx.cmd utilisent dotnet --list-sdks pour identifier le SDK installé le plus récent. Ils appellent alors directement dotnet exec <sdk-path>/dotnet.dll dnx en contournant le muxer .NET et tout épinglage de SDK via global.json.
Type de changement cassant
Ce changement est un changement de comportement.
Raison du changement
Certaines .NET commandes CLI, notamment dnx, sont considérées comme des fonctionnalités indépendantes de la version qui doivent toujours s’exécuter avec le kit SDK installé le plus récent. Le fait de s’appuyer sur global.json signifiait que les utilisateurs qui avaient épinglé une ancienne version du SDK afin de réduire les risques liés à des modifications affectant la génération cassaient également dnx par inadvertance. Dans les dossiers où un SDK antérieur à .NET 10 était fixé, la commande dnx n’était pas disponible, ce qui entraînait des erreurs confuses et, dans certains cas, des délais d’expiration dans des outils tels que Copilot CLI.
Action recommandée
Pour restaurer le comportement précédent, où le muxer .NET et global.json contrôlent la sélection du SDK, exécutez explicitement dotnet dnx au lieu du script dnx.
API affectées
Aucun.