RuntimeIdentifier automático solo para publicación

En el SDK 7.0.100, se ha producido un cambio para agregar <RuntimeIdentifier> automáticamente a proyectos con propiedades que requieren un identificador en tiempo de ejecución (RID). Estas propiedades son las siguientes:

  • SelfContained
  • PublishAot
  • PublishReadyToRun
  • PublishSingleFile
  • PublishSelfContained

Sin embargo, todas estas propiedades, excepto SelfContained, solo se utilizan para publicar. Sin embargo, se agregaba el implícito <RuntimeIdentifier> para cualquier operación dotnet si estas propiedades estaban en el archivo del proyecto o se especificabancomo parte del comando dotnet.

Ahora, el RID automático para estas propiedades, excepto SelfContained, solo se agrega durante la publicación. Además, el RID automático solo se agrega cuando se usa el comando dotnet publish de la CLI. No se agrega al publicar desde Visual Studio o msbuild, ya que son mecanismos independientes y Visual Studio debe proporcionar su propio RID.

Versión introducida

SDK de .NET 7.0.200

Comportamiento anterior

Anteriormente, si especificaba alguna de las propiedades mencionadas, el RID se agregaba automáticamente al proyecto.

Comportamiento nuevo

El RID solo se agregaba automáticamente para el comando dotnet publish.

Si realizó una restauración sin RID en .NET 7 y la usa para restaurar un comando publish --no-restore en un proyecto con una de las propiedades mencionadas, deberá especificar un RID mediante dotnet restore -r <RID>.

Tipo de cambio importante

Este cambio puede afectar a la compatibilidad binaria y a la compatibilidad de orígenes.

Motivo del cambio

El cambio de RID fue un cambio importante, y no fue necesario un cambio de propiedad de publicación para interrumpir dotnet build ni otros comandos no relacionados con la publicación.

Para una acción como restore seguida de publish --no-restore, debe agregar el RID mediante dotnet restore -r RID. En este caso, también es mejor ser explícito al publicar para que la publicación tenga el mismo RID (mediante dotnet publish -r RID). Como alternativa, puede quitar --no-restore del comando publish.

Para todo lo demás, no se necesita ninguna acción. Sin embargo, si desea mantener el RID, agréguelo al archivo del proyecto de la siguiente manera: <RuntimeIdentifier>win-x64</RuntimeIdentifier>.

Consulte también