Sdílet prostřednictvím


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.

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 na true v souboru projektu:

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

Ovlivněná rozhraní API

Žádný.