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.
Rekommenderad åtgärd
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
tilltrue
i projektfilen:<PropertyGroup> <UseRidGraph>true</UseRidGraph> </PropertyGroup>
Berörda API:er
Ingen.