Delen via


Dubbele uitvoer voor -getItem, -getProperty en -getTargetResult

.NET SDK 8.0.200 heeft een regressie geïntroduceerd in de nieuwe -getItemopties 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 -getItemwerden , -getPropertyen -getTargetResult opties doorgegeven aan beide MSBuild-aanroepen, in plaats van alleen de optie die een gebruiker verwachtte te activeren.

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, -getPropertyof -getTargetResults.