.NET SDK använder ett mindre RID-diagram
Projekt som riktar in sig på .NET 8 eller senare versioner använder nu ett mindre, "portabelt" körningsidentifierare (RID).
Tidigare beteende
.NET SDK använde ett komplext RID-diagram för att fastställa tillgångar när du skapar eller publicerar ett projekt.
Nytt beteende
Från och med .NET 8 använder .NET SDK ett mindre diagram som endast består av bärbara RID:er för projekt som riktar in sig på .NET 8 eller en senare version. Det innebär att SDK:t inte identifierar versionsspecifika eller distributionsspecifika RID:er som standard. Du kan se följande fel (eller liknande) när du skapar projektet:
fel NETSDK1083: Den angivna RuntimeIdentifier "win10-x64" känns inte igen. Mer information finns i https://aka.ms/netsdk1083.
Version introducerad
.NET 8 RC 1
Typ av icke-bakåtkompatibel ändring
Den här ändringen är en beteendeförändring och kan även påverka källkompatibiliteten.
Orsak till ändringen
RID-grafen var kostsam att underhålla och förstå, vilket krävde att .NET självt var distro-medvetet på ett bräckligt sätt. .NET-teamet och communityn ägnar en icke-trivial tid åt att uppdatera grafen och backportera sådana uppdateringar till tidigare versioner. Det långsiktiga målet är att sluta uppdatera RID-grafen, sluta läsa den och slutligen ta bort den. Den här icke-bakåtkompatibla ändringen är ett steg mot det målet.
Rekommenderad åtgärd
Använd bärbara RID:er, linux-<arch>
till exempel , linux-musl-<arch>
, osx-<arch>
och win-<arch>
, i stället för versionsspecifika eller distributionsspecifika RID:er, till exempel ubuntu.16.04-<arch>
, osx.10.11-<arch>
och win10-<arch>
.
Om du anger RID med hjälp av egenskapen RuntimeIdentifier MSBuild i projektfilen (*.csproj, *.vbproj eller *.fsproj) ändrar du den därefter. Ändra till exempel <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
till <RuntimeIdentifier>win-x64</RuntimeIdentifier>
i projektfilen:
<PropertyGroup>
...
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
Om du anger RID som ett kommandoradsargument gör du en liknande ändring. I stället för dotnet publish --framework net8.0 --runtime win10-x64
använder du till exempel kommandot dotnet publish --framework net8.0 --runtime win-x64
.
Om du behöver återgå till det tidigare beteendet att använda den gamla fullständiga RID-grafen UseRidGraph
kan du ange egenskapen MSBuild till true
i projektfilen. Den gamla RID-grafen uppdateras dock inte i framtiden för att försöka hantera andra distributioner eller arkitekturer.
<PropertyGroup>
<UseRidGraph>true</UseRidGraph>
</PropertyGroup>