Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
MSBuild Server повышает производительность сборок .NET Core, которые вызываются при использовании dotnet build
команды из .NET CLI в средах сборки Windows, Linux или Mac .NET Core. Вместо запуска процесса сборки при каждом запросе сборки большая часть контекста кэшируется в длительный процесс, чтобы его можно было повторно использовать в следующей сборке. MsBuild Server не относится к сборкам Visual Studio, так как Visual Studio выступает в качестве узла для MSBuild и уже кэширует весь необходимый контекст.
MSBuild Server обычно не полезен в сценариях CI, таких как сборки Azure Pipeline, так как конвейеры обычно создают среду сборки по мере необходимости для каждой сборки, а затем удаляют ее после завершения сборки.
Включение СЕРВЕРА MSBuild
Сервер MSBuild по умолчанию не включен; чтобы включить его, задайте для переменной среды значение DOTNET_CLI_USE_MSBUILD_SERVER
на true
или 1
.
После включения при первом запуске нового процесса сборки запускается сервер сборки. При запуске первой сборки он включает кэш. Кэш сохраняется после завершения первой сборки; Вторая сборка, следовательно, продолжается быстрее, так как время запуска значительно сокращается из-за кэшированных сведений. Кэш сохраняется после завершения сборки, но после простоя в течение 15 минут он завершает работу. Таким образом, это особенно полезно в повторяющихся сценариях сборки, где многие сборки запрашиваются в быстром следовании.
Завершение работы или отключение MSBuild Server
Существует несколько различных способов отключения использования сервера MSBuild. Если вы просто хотите завершить работу запущенного сервера, вы можете выполнить команду dotnet build-server shutdown
.
Чтобы отключить функцию для всех сборок на компьютере, можно установить системную переменную DOTNET_CLI_USE_MSBUILD_SERVER
в 0
или false
. Эту переменную можно также задать на уровне каждого проекта в таком инструменте, как VS Code в launch.json
.
Чтобы отключить MSBuild Server для конкретного вызова сборки командной строки, можно использовать параметр /nr:false
(или /node-reuse:false
).
Чтобы полностью отключить эту функцию, вы можете отказаться от волны изменений, которая ее включила; SET MSBuildDisableFeaturesFromVersion="17.4"
. Это отключило другие функции в рамках той же волны изменений. Дополнительные сведения об изменениях волн см. в разделе "Волны изменений MSBuild".
Определение текущего состояния сервера сборки
Вы можете просматривать состояние процесса на компьютере и искать процессы сервера MSBuild. Процессы сервера MSBuild запускаются с dotnet.exe
и отображают путь к MSBuild.dll и параметру команды /nodemode:8
, где 8
указывает на MSBuild Server, а /nodemode:1
указывает на обычные рабочие узлы MSBuild.