Avertissement « RuntimeIdentifier » si autonome n’est pas spécifié

Si vous spécifiez un RuntimeIdentifier dans votre fichier projet ou utilisez l’option -r avec dotnet, le kit SDK .NET génère, publie et exécute par défaut les sorties pour que les applications soient autonomes. La valeur par défaut sans spécifier un RuntimeIdentifier consiste à générer une application dépendante de l’infrastructure. Cette modification introduit un nouvel avertissement (NETSDK1179) si vous spécifiez un RuntimeIdentifier sans spécifier si l’application est autonome.

Version introduite

.NET 6 RC 1

Comportement précédent

Dans les versions précédentes, la spécification d’un RuntimeIdentifier permettait de changer silencieusement l’application pour passer d’une application dépendante de l’infrastructure à une application autonome.

Nouveau comportement

Dans .NET 6, si vous spécifiez un RuntimeIdentifier sans spécifier si l’application est autonome, cet avertissement s’affiche :

avertissement NETSDK1179 : une option '--self-contained' ou '--no-self-contained' est nécessaire quand '--runtime' est utilisé.

Par exemple, la commande suivante génère l’avertissement :

dotnet publish -r win-x86

Modifier la catégorie

Ce changement peut affecter la compatibilité source.

Raison du changement

La valeur par défaut sans spécifier un RuntimeIdentifier consiste à générer une application dépendante de l’infrastructure. Cette valeur par défaut a entraîné la confusion de nombreux clients. L’ajout de l’avertissement a ces objectifs :

  • Avertir les clients du changement de comportement par défaut de générer une application dépendante de l’infrastructure.
  • Encourager les clients à choisir spécifiquement le type d’application qu’ils souhaitent créer.
  • Préparer les clients à changer éventuellement le comportement dans .NET 7 pour que la valeur par défaut dépende de l’infrastructure.
  • Spécifiez une valeur booléenne dans votre fichier projet pour SelfContained.
  • Vous pouvez également ajouter --self-contained avec une valeur à votre commande build ou publish.

API affectées

N/A

Voir aussi