Sdílet prostřednictvím


Duplicitní výstup pro -getItem, -getProperty a -getTargetResult

Sada .NET SDK 8.0.200 zavedla regresi v nových -getItemmožnostech rozhraní příkazového řádku , -getPropertya -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-getPropertybyly 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.

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