Dela via


Standard-RID som används när du riktar in dig på .NET Framework

I .NET 8 introducerades en ändring i använda ett mindre RID-diagram (Runtime Identifier) när net8.0 och senare versioner skulle användas.

Detta orsakade dock problem för kunder som riktade sig mot flera plattformar med .NET och .NET Framework. Det beror på att återställningen sker en gång, men .NET Framework-projektet försöker använda den gamla RID-standardinställningen och .NET-projektet (Core) försöker använda det nya reducerade RID-diagrammet.

För att aktivera det här scenariot med flera mål används nu ett standard-RID som är kompatibelt med det nya RID-diagrammet i det här scenariot.

Version införd

.NET 9 GA

Tidigare beteende

SDK-stil projekt som riktade sig mot .NET Framework utan angiven RID standardmässigt till win7-x86 eller win7-x64.

Nytt beteende

SDK-liknande projekt som riktar sig mot .NET Framework och som inte har någon RID inställd använder som standard win-x86 eller win-x64.

Typ av icke-bakåtkompatibel ändring

Den här ändringen kan påverka källkompatibilitet.

Orsak till ändring

.NET Framework-program fick ett standard-RID som inte var kompatibelt med den bärbara RID-grafen. Den inkompatibiliteten resulterade i ett återställningsfel:

Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): fel NETSDK1047: Resursfilen 'D:\1\s\artifacts\obj\MSBuild\project.assets.json' har inget mål för 'net472/win7-x64'. Kontrollera att återställningen har körts och att du har inkluderat "net472" i TargetFrameworks för projektet. Du kan också behöva inkludera "win7-x64" i projektets RuntimeIdentifiers. [MSBuild.csproj::TargetFramework=net472]>

Mer information finns i dotnet/sdk-ärende #35575.

Om du påverkas av den här ändringen väljer du någon av följande åtgärder:

  • Uppdatera körningsidentifieraren till ett värde som stöds av den bärbara RID-grafen. Exempel på projektfil:

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

    Om du anger RID som ett kommandoradsargument gör du en liknande ändring. Till exempel dotnet publish --runtime win-x64.

  • Växla tillbaka till det gamla RID-diagrammet genom att ange UseRidGraph till true i projektfilen:

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

Berörda API:er

Ingen.