Standardmäßiges RID, das bei der Zielbestimmung von .NET Framework verwendet wird
In .NET 8 wurde eine Änderung eingeführt, um ein kleineres Laufzeitbezeichnerdiagramm (RID) zu verwenden, für Versionen ab net8.0
und höher.
Dies führte jedoch bei Kunden, die sowohl .NET als auch das .NET Framework für mehrere Zielplattformen nutzen, zu Problemen. Das liegt daran, dass die Wiederherstellung einmal erfolgt, aber das .NET Framework-Projekt versucht, die alte RID-Standardzuordnung zu verwenden, und das .NET (Core)-Projekt versucht, den neuen reduzierten RID-Graphen zu verwenden.
Um dieses Szenario mit Mehrfach-Zielsetzung zu ermöglichen, wird nun ein standardmäßiges RID verwendet, das mit dem neuen RID-Diagramm kompatibel ist.
Eingeführt in Version
.NET 9 GA
Vorheriges Verhalten
PROJEKTE im SDK-Stil, die .NET Framework ohne RID-Standardeinstellung auf win7-x86
oder win7-x64
festgelegt haben.
Neues Verhalten
PROJEKTE im SDK-Stil, die .NET Framework ohne RID-Standardeinstellung auf win-x86
oder win-x64
festgelegen.
Typ des Breaking Changes
Diese Änderung kann sich auf die Quellkompatibilität auswirken.
Grund für Änderung
.NET Framework-Anwendungen erhielten ein Standardmäßiges RID, das nicht mit dem portablen RID-Diagramm kompatibel war. Diese Inkompatibilität führte zu einem Wiederherstellungsfehler:
Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): Fehler NETSDK1047: Ressourcendatei 'D:\1\s\artifacts\obj\MSBuild\project.assets.json' hat kein Ziel für 'net472/win7-x64'. Stellen Sie sicher, dass die Wiederherstellung ausgeführt wurde und dass 'net472' in Ihren TargetFrameworks für Ihr Projekt enthalten ist. Möglicherweise müssen Sie auch "win7-x64" in die RuntimeIdentifier Ihres Projekts einschließen. [MSBuild.csproj::TargetFramework=net472]>
Weitere Informationen finden Sie unter dotnet/sdk issue #35575.
Empfohlene Aktion
Wenn Sie von dieser Änderung betroffen sind, wählen Sie eine der folgenden Aktionen aus:
Aktualisieren Sie Ihren Laufzeitbezeichner auf einen Wert, der vom portablen RID-Diagramm unterstützt wird. Beispiel für eine Project-Datei:
<PropertyGroup> <RuntimeIdentifier>win-x64</RuntimeIdentifier> </PropertyGroup>
Wenn Sie das RID-Argument als Befehlszeilenargument angeben, nehmen Sie eine ähnliche Änderung vor. Beispiel:
dotnet publish --runtime win-x64
.Wechseln Sie zurück zum alten RID-Diagramm, indem Sie
UseRidGraph
in der Projektdatei auftrue
festlegen:<PropertyGroup> <UseRidGraph>true</UseRidGraph> </PropertyGroup>
Betroffene APIs
Keine.