Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Skripten dnx och dnx.cmd använder inte längre .NET muxer för att välja SDK-versionen. I stället hittar de den senaste installerade SDK:n och anropar den direkt, vilket kringgår alla global.json filer i arbetskatalogen.
Version lanserad
.NET 10 SDK 10.0.302, 10.0.400 och .NET 11 Förhandsversion 6
Tidigare beteende
Tidigare anropade dnx-skripten dotnet dnx, som förlitade sig på .NET-muxern för att välja SDK-version baserat på en eventuell global.json-fil i arbetskatalogen. Om global.json låste till en SDK-version som var äldre än .NET 10 misslyckades skripten med följande fel:
Unrecognized command or argument 'execute'
Från och med .NET 10 SDK 10.0.302 (och senare) och .NET 11 Förhandsversion 6 används dnx skripten dnx.cmd och dotnet --list-sdks för att identifiera den senaste installerade SDK:n. De anropar sedan dotnet exec <sdk-path>/dotnet.dll dnx direkt och kringgår .NET-muxern och eventuell global.json SDK pinning.
Typ av brytande ändring
Den här ändringen är en beteendeförändring.
Orsak till ändringen
Vissa .NET CLI-kommandon, inklusive dnx, anses vara versionsoberoende funktioner som alltid ska köras med den senaste installerade SDK:n. Att förlita sig på global.json innebar att användare som fäst en äldre SDK-version för att minska risken för ändringar som påverkar bygget också oavsiktligt bröt .dnx I mappar där en SDK-version äldre än .NET 10 var fastnålad var kommandot dnx inte tillgängligt, vilket orsakade förvirrande felmeddelanden och i vissa fall tidsgränsöverskridanden i verktyg som Copilot CLI.
Rekommenderad åtgärd
För att återställa det tidigare beteendet där .NET-muxern och global.json styr val av SDK, kör du dotnet dnx uttryckligen i stället för skriptet dnx.
Berörda API:er
None.