Co nowego w programie MSBuild 17
W tym artykule opisano istotne aktualizacje w programie MSBuild 17.0. Aby zapoznać się ze szczegółowymi informacjami o każdej wersji, zobacz wydania programu MSBuild.
Program MSBuild 17.0 dostarczany z programem Visual Studio 2022 i .NET 6.0.
Zmieniona ścieżka
Program MSBuild jest instalowany w folderze \Current w każdej wersji programu Visual Studio, a pliki wykonywalne znajdują się w podfolderze \Bin. Na przykład ścieżka do MSBuild.exe zainstalowana w programie Visual Studio 2022 Community jest C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe Możesz również użyć następującego modułu programu PowerShell, aby zlokalizować program MSBuild: vssetup.powershell.
Zmienione właściwości
Następujące właściwości programu MSBuild zostały zaktualizowane z powodu nowego numeru wersji.
MSBuildToolsVersion
dla tej wersji narzędzi pozostaje "Current". Wersja zestawu jest taka sama jak w programach Visual Studio 2017 i Visual Studio 2019, czyli 15.1.0.0.VisualStudioVersion
dla tej wersji narzędzi to "17.0"
64-bitowy
MSBuild.exe wcześniej miał wersje 32-bitowe i 64-bitowe, ale teraz wersja 64-bitowa jest domyślna. Program Visual Studio 2022 używa 64-bitowej wersji programu MSBuild dla wszystkich kompilacji. Wersja 32-bitowa jest nadal dostępna, ale zalecamy przełączenie wszystkich kompilacji na 64-bitową wersję.
W przypadku właścicieli zadań oznacza to, że gdy program MSBuild ładuje zadanie, spróbuje załadować je w 64-bitowym procesie. Zalecamy, aby rozważyć zaktualizowanie zadań do uruchamiania się w 64-bitowym procesie, ale dla zgodności, możesz poinformować MSBuild, że zadanie uruchamia się wyłącznie jako 32-bitowe w ich sekcji UsingTask.
Ulepszenia wydajności
Program MSBuild jest szybszy! Celem tej wersji było zwiększenie wydajności w wielu typowych scenariuszach. Program MSBuild 17.0 może tworzyć większe projekty, szybciej.
Wersje platformy .NET
Programy MSBuild (i Visual Studio) są teraz przeznaczone dla programów .NET Framework 4.7.2 i .NET 6.0. Jeśli chcesz używać nowych funkcji interfejsu API MSBuild, twój zestaw musi się również uaktualnić. Istniejący kod będzie jednak nadal działać.
Dzienniki
Dzienniki binarne są mniejsze i zawierają więcej informacji.
W programie MSBuild 17.8 lub nowszym spróbuj użyć nowego rejestratora terminalu (-terminalLogger
lub -tl
opcji w wierszu polecenia), aby uzyskać ulepszone dane wyjściowe konsoli.
Zmiany łamiące zgodność
- Metoda
GetType()
nie może być już wywoływana w funkcjach właściwości. - Program MSBuild dla platformy .NET jest przeznaczony dla platformy .NET 6.
Inne zmiany zachowania
-
MSBuildCopyContentTransitively
jest teraz domyślnie włączona, zapewniając spójność folderów wyjściowych w kompilacjach przyrostowych.
Aby uzyskać więcej zmian w tej wersji, zobacz szczegółowe uwagi do wersji, a w przypadku zmian w wersjach programu MSBuild, z których można zrezygnować, zobacz fale zmian.