Duplicitní výstup pro -getItem, -getProperty a -getTargetResult
Sada .NET SDK 8.0.200 zavedla regresi v nových -getItem
možnostech rozhraní příkazového řádku , -getProperty
a -getTargetResult
MSBuild. Pokud se sada SDK používá k provedení operace MSBuild pro konkrétní targetFramework, výstup se duplikuje, například takto:
> 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/
Poznámka:
Toto chování hodláme opravit v nadcházející verzi sady .NET 8.0.200 SDK.
Zavedená verze
.NET 8.0.200
Předchozí chování
> dotnet build -r:android-arm64 --getProperty:OutputPath -f:net8.0-android
bin\Debug/net8.0-android/android-arm64/
Nové chování
Sestavení, načtení nebo spuštění ovlivněného projektu selže.
Typ zásadní změny
Jedná se o změnu chování, která může mít vliv na uživatelské skripty, zejména ve scénářích CI/CD.
Důvod změny
Tyto možnosti mají vracet hodnoty vypočítané z jednoho uživatelem požadovaného sestavení. Operace build
MSBuild iniciované sadou SDK ale publish
můžou někdy aktivovat druhé volání nástroje MSBuild– zejména pokud -f
se používá možnost určit, že sestavení by mělo proběhnout pro konkrétní cílovou architekturu. V tomto scénáři -getItem
-getProperty
byly předány obě vyvolání nástroje MSBuild a -getTargetResult
možnosti, nikoli pouze do toho, který by se měl aktivovat uživatelem.
Doporučená akce
Zvolte jednu z následujících akcí:
- Použijte starší verzi sady .NET SDK (před zavedením regrese).
- Použijte verzi sady .NET 8 SDK, která obsahuje opravu, což by měla být jakákoli verze po verzi 8.0.202.
- Odeberte veškeré použití
-f
volání, která také používají-getItem
,-getProperty
nebo-getTargetResults
.