Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
.NET SDK 8.0.200 introducerade en regression i de nya -getItem, -getPropertyoch -getTargetResult MSBuild CLI-alternativen. När SDK:t används för att utföra en MSBuild-åtgärd för en specifik TargetFramework dupliceras utdata, så här:
> 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/
Anmärkning
Vi har för avsikt att åtgärda det här beteendet i en kommande version av .NET 8.0.200 SDK.
Version lanserad
.NET 8.0.200
Tidigare beteende
> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
Nytt beteende
Det går inte att skapa, läsa in eller köra ett berört projekt.
Typ av brytande ändring
Det här är en beteendeförändring som kan påverka användarskript, särskilt i CI/CD-scenarier.
Orsak till ändring
Dessa alternativ är avsedda att returnera värden som beräknas från en enda version som begärts av användaren. Men SDK-initierade MSBuild-åtgärder som build och publish kan ibland utlösa ett andra anrop till MSBuild – särskilt när -f alternativet används för att ange att en version ska ske för ett specifikt TargetFramework. I det scenariot skickades alternativen -getItem, -getProperty, och -getTargetResult till båda MSBuild-anropen, istället för bara det som en användare förväntade sig skulle utlösas.
Rekommenderad åtgärd
Välj någon av följande åtgärder:
- Använd en äldre version av .NET SDK (innan regressionen introducerades).
- Använd en version av .NET 8 SDK som innehåller korrigeringen, som ska vara valfri version efter 8.0.202.
- Ta bort all användning av
-ffrån anrop som också använder-getItem,-getPropertyeller-getTargetResults.