Freigeben über


.NET SDK verwendet ein kleineres RID-Diagramm.

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

Vorheriges Verhalten

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

Neues Verhalten

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

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

Eingeführte Version

.NET 8 RC 1

Art der einschneidenden Änderung

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

Grund für Ä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 investieren erheblichen Aufwand, um das Diagramm zu aktualisieren und solche Updates auf frühere Veröffentlichungen zurückzuführen. Das langfristige Ziel besteht darin, die Aktualisierung des RID-Diagramms zu beenden, das Lesen zu beenden und schließlich zu entfernen. Diese bahnbrechende Änderung ist ein Schritt zu diesem Ziel.

Verwenden Sie tragbare RIDs, z. B. linux-<arch>, linux-musl-<arch>, osx-<arch> und win-<arch>, anstelle von versionsspezifischen oder distrospezifischen RIDs, wie z. B. 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 in Ihrer Projektdatei zum Beispiel <RuntimeIdentifier>win10-x64</RuntimeIdentifier> in <RuntimeIdentifier>win-x64</RuntimeIdentifier>.

<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 des dotnet publish --framework net8.0 --runtime win10-x64Befehls den Befehl dotnet publish --framework net8.0 --runtime win-x64.

Wenn Sie zum vorherigen Verhalten mit dem alten vollständigen RID-Graphen zurückkehren müssen, können Sie die UseRidGraph MSBuild-Eigenschaft auf true in der Projektdatei festlegen. Das alte RID-Diagramm wird jedoch in Zukunft nicht aktualisiert, um andere Distros oder Architekturen zu behandeln.

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

Siehe auch