Partager via


RID par défaut utilisé lors du ciblage du .NET Framework

Dans .NET 8, une modification a été introduite pour utiliser un graphique RID (Runtime Identifier) plus petit lors du ciblage de net8.0 et des versions ultérieures.

Toutefois, cela a posé des problèmes aux clients qui multi-ciblaient .NET et .NET Framework. Cela est dû au fait que la restauration se produit une fois, mais le projet .NET Framework tente d’utiliser l’ancienne valeur par défaut RID et le projet .NET (Core) tente d’utiliser le nouveau graphique RID réduit.

Pour activer ce scénario multi-ciblage, un RID par défaut compatible avec le nouveau graphique RID est désormais utilisé dans ce scénario.

Version introduite

.NET 9 GA

Comportement précédent

Projets de style SDK qui ciblaient .NET Framework sans RID défini étaient par défaut réglés sur win7-x86 ou win7-x64.

Nouveau comportement

Projets de style SDK qui ciblent .NET Framework sans RID défini par défaut sur win-x86 ou win-x64.

Type de changement cassant

Cette modification peut affecter la compatibilité source .

Raison de la modification

Les applications .NET Framework obtenaient un RID par défaut incompatible avec le graphique RID portable. Cette incompatibilité a entraîné une erreur de restauration :

Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5) : l’erreur NETSDK1047 : le fichier Assets 'D:\1\s\artifacts\obj\MSBuild\project.assets.json' n’a pas de cible pour 'net472/win7-x64'. Vérifiez que la restauration est exécutée et que vous avez inclus « net472 » dans TargetFrameworks pour votre projet. Vous devrez peut-être également inclure « win7-x64 » dans les RuntimeIdentifiers de votre projet. [MSBuild.csproj::TargetFramework=net472]>

Pour plus d’informations, consultez Problème dotnet/sdk #35575.

Si vous êtes affecté par cette modification, choisissez l’une des actions suivantes :

  • Mettez à jour votre identificateur d’exécution en une valeur prise en charge par le graphique RID portable. Exemple de fichier projet :

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

    Si vous spécifiez le RID en tant qu’argument de ligne de commande, apportez une modification similaire. Par exemple, dotnet publish --runtime win-x64.

  • Revenez à l’ancien graphique RID en définissant UseRidGraph sur true dans le fichier projet :

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

API affectées

Aucun.