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é.
Action recommandée
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
.