Partager via


Sortie dupliquée pour -getItem, -getProperty et -getTargetResult

Le SDK .NET 8.0.200 a introduit une régression dans les nouvelles options de la CLI MSBuild -getItem, -getProperty, et -getTargetResult. Lorsque le Kit de développement logiciel (SDK) est utilisé pour effectuer une opération MSBuild pour un TargetFramework spécifique, la sortie est dupliquée, comme suit :

> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
bin\Debug/net8.0-android/android-arm64/

Remarque

Nous avons l’intention de corriger ce comportement dans une prochaine version du Kit de développement logiciel (SDK) .NET 8.0.200.

Version introduite

.NET 8.0.200

Comportement précédent

> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/

Nouveau comportement

La construction, le chargement ou l’exécution d’un projet affecté échouent.

Type de changement cassant

Il s’agit d’un changement comportemental qui peut avoir un impact sur les scripts utilisateur, en particulier dans les scénarios CI/CD.

Raison de la modification

Ces options sont destinées à retourner des valeurs calculées à partir d’une seule build demandée par l’utilisateur. Toutefois, les opérations MSBuild initiées par le SDK comme build et publish peuvent parfois déclencher un deuxième appel à MSBuild, en particulier lorsque l’option -f est utilisée pour spécifier qu’une build doit se produire pour un TargetFramework spécifique. Dans ce scénario, les options -getItem, -getProperty, et -getTargetResult ont été passées aux deux appels MSBuild, au lieu de celui qu’un utilisateur s’attendait à voir déclenché.

Sélectionnez une des actions suivantes :

  • Utilisez une version antérieure du Kit de développement logiciel (SDK) .NET (avant l’introduction de la régression).
  • Utilisez une version du Kit de développement logiciel (SDK) .NET 8 qui contient le correctif, qui doit être n’importe quelle version après la version 8.0.202.
  • Supprimez toute utilisation de -f dans les appels qui utilisent également -getItem, -getProperty ou -getTargetResults.