RuntimeIdentifier automatique pour la publication uniquement

Dans le SDK 7.0.100, il y a eu une modification afin d’ajouter automatiquement <RuntimeIdentifier> aux projets dont les propriétés nécessitent un identificateur d’exécution (RID). Ces propriétés sont les suivantes :

  • SelfContained
  • PublishAot
  • PublishReadyToRun
  • PublishSingleFile
  • PublishSelfContained

Toutefois, toutes ces propriétés à l’exception de SelfContained sont utilisées uniquement pour la publication. Cependant, l’implicite <RuntimeIdentifier> a été ajouté pour toute opération dotnet si ces propriétés se trouvaient dans le fichier projet ou spécifiées dans le cadre de la commande dotnet.

À présent, le RID automatique pour ces propriétés, à l’exclusion de SelfContained, est ajouté uniquement lors de la publication. En outre, le RID automatique est ajouté uniquement lors de l’utilisation de la commande CLI dotnet publish. Il n’est pas ajouté lorsque vous publiez à partir de Visual Studio ou msbuild, car il s’agit de mécanismes distincts, et Visual Studio doit fournir son propre RID.

Version introduite

Kit SDK .NET 7.0.200

Comportement précédent

Auparavant, si vous spécifiez l’une des propriétés mentionnées, le RID était automatiquement ajouté au projet.

Nouveau comportement

Le RID est ajouté automatiquement uniquement pour la commande dotnet publish.

Si vous avez effectué une restauration sans RID dans .NET 7 et que vous l’utilisez pour restaurer une commande publish --no-restore sur un projet avec l’une des propriétés mentionnées, vous devez spécifier un RID à l’aide de dotnet restore -r <RID>.

Type de changement cassant

Cette modification peut affecter la compatibilité binaire et la compatibilité des sources.

Raison du changement

La modification du RID était un changement cassant, et il n’était pas nécessaire de modifier la propriété de publication pour arrêter dotnet build et d’autres commandes non liées à la publication.

Pour une action comme restore suivie de publish --no-restore, vous devez ajouter le RID à l’aide de dotnet restore -r RID. Dans ce cas, il est également préférable d’être explicite lorsque vous publiez afin que la publication ait le même RID (à l’aide de dotnet publish -r RID). Vous pouvez également supprimer --no-restore de la commande publish.

Pour tout le reste, aucune action n’est nécessaire. Toutefois, si vous souhaitez conserver le RID, ajoutez-le au fichier projet comme suit : <RuntimeIdentifier>win-x64</RuntimeIdentifier>.

Voir aussi