.NET SDK verwendet ein kleineres RID-Diagramm

Projekte, die auf .NET 8 oder höhere Versionen abzielen, verwenden jetzt ein kleineres, „portables“ RID-Diagramm (Runtime Identifier, Laufzeitbezeichner).

Vorheriges Verhalten

Das .NET-SDK hat ein komplexes RID-Diagramm verwendet, um Ressourcen beim Erstellen oder Veröffentlichen eines Projekts zu bestimmen.

Neues Verhalten

Ab .NE  8 verwendet das .NET-SDK für Projekte, die auf .NET 8 oder eine höhere Version abzielen, ein kleineres Diagramm, das nur aus portablen RIDs besteht. Dies bedeutet, dass das SDK standardmäßig keine versions- oder distributionsspezifischen RIDs erkennt. Möglicherweise wird beim Erstellen ihres Projekts der folgende Fehler (oder ähnlich) angezeigt:

Fehler NETSDK1083: Der angegebene RuntimeIdentifier "win10-x64" wird nicht erkannt. Weitere Informationen finden Sie unter https://aka.ms/netsdk1083.

Eingeführt in Version

.NET 8 RC 1

Typ des Breaking Changes

Diese Änderung ist eine Verhaltensänderung und kann sich auch auf die Quellkompatibilität auswirken.

Grund für die Änderung

Das RID-Diagramm war aufwändig in der Pflege und im Verständnis und erforderte, dass .NET selbst auf anfällige Art und Weise distributionsabhängig ist. Das .NET-Team und die Community verbringen einen nicht unerheblichen Teil ihrer Zeit mit der Aktualisierung des Diagramms und der Rückportierung solcher Aktualisierungen in frühere Versionen. Das langfristige Ziel ist es, das RID-Diagramm nicht mehr zu aktualisieren, es nicht mehr zu lesen und es schließlich zu entfernen. Dieser Breaking Change ist ein Schritt in Richtung dieses Ziels.

Verwenden Sie portierbare RIDs, z. B. linux-<arch>, linux-musl-<arch>, osx-<arch> und win-<arch>, anstelle versionsspezifischer oder distrospezifischer RIDs, wie ubuntu.16.04-<arch>, osx.10.11-<arch>, und win10-<arch>.

Wenn Sie die RID-Eigenschaft mithilfe der RuntimeIdentifier MSBuild-Eigenschaft in Ihrer Projektdatei (*.csproj, *.vbproj oder *.fsproj) angeben, ändern Sie sie entsprechend. Ändern Sie z. B. <RuntimeIdentifier>win10-x64</RuntimeIdentifier> auf <RuntimeIdentifier>win-x64</RuntimeIdentifier> in Ihrer Projektdatei:

<PropertyGroup>
  ...
  <RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>

Wenn Sie das RID-Argument als Befehlszeilenargument angeben, nehmen Sie eine ähnliche Änderung vor. Verwenden Sie z. B. anstelle von dotnet publish --framework net8.0 --runtime win10-x64 den Befehl dotnet publish --framework net8.0 --runtime win-x64.

Wenn Sie das vorherige Verhalten wiederherstellen und das alte vollständige RID-Diagramm verwenden müssen, können Sie in Ihrer Projektdatei die MSBuild-Eigenschaft UseRidGraph auf true festlegen. Das alte RID-Diagramm wird jedoch in Zukunft nicht aktualisiert, um andere Distributionen oder Architekturen zu berücksichtigen.

<PropertyGroup>
  <UseRidGraph>true</UseRidGraph>
</PropertyGroup>

Weitere Informationen