Le kit de développement logiciel (SDK) .NET utilise un graphique RID plus petit
Les projets qui ciblent .NET 8 ou versions ultérieures utilisent désormais un graphique RID (Runtime Identifier) « portable » plus petit.
Comportement précédent
Le kit de développement logiciel (SDK) .NET utilisait un graphique RID complexe pour déterminer les ressources lors de la création ou de la publication d’un projet.
Nouveau comportement
À compter de .NET 8, le kit de développement logiciel (SDK) .NET utilise un graphique plus petit, composé uniquement de RID portables, pour les projets qui ciblent .NET 8 ou une version ultérieure. Cela signifie que le kit de développement logiciel (SDK) ne reconnaît pas par défaut les RID spécifiques à la version ou à la distribution. Il est possible que l’erreur suivante (ou similaire) s’affiche lorsque vous générez votre projet :
erreur NETSDK1083 : le RuntimeIdentifier « win10-x64 » spécifié n’est pas reconnu. Consultez la rubrique https://aka.ms/netsdk1083 (éventuellement en anglais) pour plus d’informations.
Version introduite
.NET 8 RC 1
Type de changement cassant
Cette modification est un changement de comportement et peut également affecter la compatibilité des sources.
Raison du changement
La maintenance et la compréhension du graphe RID étaient coûteuses, exigeant que .NET lui-même soit sensible à la distribution de manière fragile. L’équipe .NET et la communauté consacrent un temps non négligeable à la mise à jour du graphe et au rétroportage de ces mises à jour vers les versions précédentes. L’objectif à long terme est d’arrêter de mettre à jour du graphe RID, d’arrêter de le lire, puis de le supprimer. Ce changement cassant est un pas vers cet objectif.
Action recommandée
Utilisez des identificateurs de runtime (RID), par exemple linux-<arch>
, linux-musl-<arch>
, osx-<arch>
et win-<arch>
, au lieu de RID spécifiques à la distribution ou à la version tels que ubuntu.16.04-<arch>
, osx.10.11-<arch>
et win10-<arch>
.
Si vous spécifiez l’identificateur de runtime en utilisant la propriété MSBuild RuntimeIdentifier dans votre Fichier projet (*.csproj, *.vbproj, ou *.fsproj), modifiez-le en conséquence. Par exemple, remplacez <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
par <RuntimeIdentifier>win-x64</RuntimeIdentifier>
dans votre Fichier projet :
<PropertyGroup>
...
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
Si vous spécifiez l’identificateur de runtime en tant qu’argument de ligne de commande, apportez une modification similaire. Par exemple. au lieu de dotnet publish --framework net8.0 --runtime win10-x64
, utilisez la commande dotnet publish --framework net8.0 --runtime win-x64
.
Si vous devez revenir au comportement précédent de l’ancien graphique RID complet, vous pouvez définir la propriété MSBuild UseRidGraph
sur true
dans votre fichier projet. Toutefois, l’ancien graphique RID ne sera pas mis à jour à l’avenir pour tenter de gérer d’autres distributions ou architectures.
<PropertyGroup>
<UseRidGraph>true</UseRidGraph>
</PropertyGroup>