Freigeben über


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.

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 auf true festlegen:

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

Betroffene APIs

Keine.