Výchozí identifikátor RID použitý při cílení na rozhraní .NET Framework
V .NET 8 se při cílení na net8.0
a novějších verzích zavedla změna, která používá menší graf identifikátorů runtime (RID).
To ale zlomilo zákazníky, kteří mají více cílových rozhraní .NET a .NET Framework. Důvodem je to, že k obnovení dojde jednou, ale projekt rozhraní .NET Framework se pokusí použít starý výchozí identifikátor RID a projekt .NET (Core) se pokusí použít nový graf omezených identifikátorů RID.
Aby byl tento scénář více cílení umožněn, použije se výchozí identifikátor RID, který je kompatibilní s novým grafem identifikátorů RID.
Zavedená verze
.NET 9 GA
Předchozí chování
Projekty ve stylu sady SDK, které cílí na rozhraní .NET Framework a nemají nastavený identifikátor RID, výchozí na win7-x86
nebo win7-x64
.
Nové chování
Projekty ve stylu SDK, které cílí na rozhraní .NET Framework bez nastaveného identifikátoru RID, mají ve výchozím nastavení win-x86
nebo win-x64
.
Typ zásadní změny
Tato změna může ovlivnit kompatibilitu zdroje.
Důvod změny
Aplikace rozhraní .NET Framework získaly výchozí identifikátor RID, který není kompatibilní s přenosným grafem RID. Kvůli nekompatibilitě došlo k chybě obnovení:
Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): chyba NETSDK1047: Soubor Assets 'D:\1\s\artifacts\obj\MSBuild\project.assets.json' nemá cíl pro net472/win7-x64. Ujistěte se, že se obnovení spustilo a že jste do targetFrameworks pro váš projekt zahrnuli net472. Možná budete také muset zahrnout win7-x64 do modulu RuntimeIdentifiers projektu. [MSBuild.csproj::TargetFramework=net472]>
Další informace najdete v problému dotnet/sdk #35575.
Doporučená akce
Pokud vás tato změna ovlivní, zvolte jednu z následujících akcí:
Aktualizujte identifikátor modulu runtime na hodnotu podporovanou přenosným grafem RID. Příklad souboru projektu:
<PropertyGroup> <RuntimeIdentifier>win-x64</RuntimeIdentifier> </PropertyGroup>
Pokud jako argument příkazového řádku zadáte identifikátor RID, proveďte podobnou změnu. Například
dotnet publish --runtime win-x64
.Přepněte zpět na starý graf RID nastavením
UseRidGraph
natrue
v souboru projektu:<PropertyGroup> <UseRidGraph>true</UseRidGraph> </PropertyGroup>
Ovlivněná rozhraní API
Žádný.