Partager via


Sortie en doublon pour -getItem, -getProperty et -getTargetResult

Le Kit de développement logiciel (SDK) .NET 8.0.200 a introduit une régression dans les nouvelles options de l’interface CLI MSBuild -getItem, -getProperty et -getTargetResult. Quand le Kit de développement logiciel (SDK) est utilisé pour effectuer une opération MSBuild pour un TargetFramework spécifique, la sortie est en doublon, 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 prévoyons 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 création, le chargement ou l’exécution d’un projet affecté échoue.

Type de changement cassant

C’est un changement de comportement qui peut avoir un impact sur des scripts utilisateur, en particulier dans les scénarios CI/CD.

Raison du changement

Ces options sont destinées à retourner des valeurs calculées depuis une build spécifique demandée par l’utilisateur. Cependant, les opérations MSBuild lancées par le Kit de développement logiciel (SDK), comme build et publish, peuvent parfois déclencher un deuxième appel à MSBuild, en particulier quand l’option -f est utilisée pour spécifier qu’une build doit être effectuée pour un TargetFramework spécifique. Dans ce scénario, les options -getItem, -getProperty et -getTargetResult étaient passées aux deux appels de MSBuild, au lieu de seulement à celui qui devait être 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 8.0.202.
  • Supprimez les utilisations de -f dans les appels qui utilisent également -getItem, -getProperty ou -getTargetResults.