Dubbele uitvoer voor -getItem, -getProperty en -getTargetResult
.NET SDK 8.0.200 heeft een regressie geïntroduceerd in de nieuwe -getItem
opties en -getProperty
-getTargetResult
MSBuild CLI. Wanneer de SDK wordt gebruikt om een MSBuild-bewerking uit te voeren voor een specifiek TargetFramework, wordt de uitvoer als volgt gedupliceerd:
> 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/
Notitie
We zijn van plan dit gedrag op te lossen in een toekomstige release van de .NET 8.0.200 SDK.
Versie geïntroduceerd
.NET 8.0.200
Vorig gedrag
> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
Nieuw gedrag
Het bouwen, laden of uitvoeren van een betrokken project mislukt.
Type wijziging die fouten veroorzaken
Dit is een gedragswijziging die van invloed kan zijn op gebruikersscripts, met name in CI/CD-scenario's.
Reden voor wijziging
Deze opties zijn bedoeld om waarden te retourneren die zijn berekend op basis van één door de gebruiker aangevraagde build. Door SDK geïnitieerde MSBuild-bewerkingen zoals build
en publish
kunnen soms een tweede aanroep naar MSBuild activeren, met name wanneer de -f
optie wordt gebruikt om op te geven dat een build moet plaatsvinden voor een specifiek TargetFramework. In dat scenario -getItem
werden , -getProperty
en -getTargetResult
opties doorgegeven aan beide MSBuild-aanroepen, in plaats van alleen de optie die een gebruiker verwachtte te activeren.
Aanbevolen actie
Kies een van de volgende acties:
- Gebruik een oudere versie van de .NET SDK (voordat de regressie werd geïntroduceerd).
- Gebruik een versie van de .NET 8 SDK die de fix bevat. Dit moet een versie na 8.0.202 zijn.
- Verwijder het gebruik van
-f
aanroepen die ook worden gebruikt-getItem
,-getProperty
of-getTargetResults
.