Delen via


Standaard-RID die wordt gebruikt bij het richten op .NET Framework

In .NET 8 is een wijziging geïntroduceerd in een kleinere RID-grafiek (Runtime Identifier) gebruiken bij het richten van net8.0 en latere versies.

Dit zorgde echter voor problemen bij klanten die zowel .NET als het .NET Framework voor meerdere platforms ondersteunen. Dat komt doordat het herstellen eenmaal plaatsvindt, maar het .NET Framework-project probeert de oude RID-standaardwaarde te gebruiken en het .NET-project (Core) probeert de nieuwe gereduceerde RID-grafiek te gebruiken.

Als u dit scenario met meerdere targeting wilt inschakelen, wordt in dit scenario een standaard-RID gebruikt die compatibel is met de nieuwe RID-grafiek.

Versie geïntroduceerd

.NET 9 GA

Vorig gedrag

SDK-stijlprojecten die gericht waren op het .NET Framework zonder ingestelde RID werden standaard ingesteld op win7-x86 of win7-x64.

Nieuw gedrag

SDK-projecten die zich richten op .NET Framework standaard zonder RID ingesteld, vallen terug op win-x86 of win-x64.

Type brekende wijziging

Deze wijziging kan van invloed zijn op broncompatibiliteit.

Reden voor wijziging

.NET Framework-toepassingen kregen een standaard-RID die niet compatibel was met de draagbare RID-grafiek. Deze incompatibiliteit heeft geresulteerd in een herstelfout:

Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): fout NETSDK1047: Assets-bestand 'D:\1\s\artifacts\obj\MSBuild\project.assets.json' heeft geen doel voor 'net472/win7-x64'. Zorg ervoor dat de herstelbewerking is uitgevoerd en dat u 'net472' hebt opgenomen in TargetFrameworks voor uw project. Mogelijk moet u ook 'win7-x64' opnemen in de RuntimeIdentifiers van uw project. [MSBuild.csproj::TargetFramework=net472]>

Zie dotnet/sdk-probleem #35575voor meer informatie.

Als u last hebt van deze wijziging, kiest u een van de volgende acties:

  • Werk uw runtime-id bij naar een waarde die wordt ondersteund door de draagbare RID-grafiek. Voorbeeld van projectbestand:

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

    Als u de RID opgeeft als opdrachtregelargument, moet u een soortgelijke wijziging aanbrengen. Bijvoorbeeld dotnet publish --runtime win-x64.

  • Ga terug naar de oude RID-grafiek door UseRidGraph in te stellen op true in het projectbestand:

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

Getroffen API's

Geen.