Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы ускорить сборку нескольких проектов, можно использовать MSBuild для параллельного выполнения сборок. Для этого используйте следующие настройки на многопроцессорных или многопроцессорных компьютерах:
Установите переключатель
-maxcpucountпри запуске MSBuild в командной строке.Задайте параметр BuildInParallel задачи как
trueна вашей задаче MSBuild.
Замечание
Производительность сборки может снизиться, если вы используете переключатель -verbosity (-v), чтобы установить подробный или диагностический уровень детализации сведений в журнале сборки. Этот переключатель часто используется для устранения неполадок. Дополнительные сведения см. в разделе "Получение журналов сборки с помощью MSBuild" и справочник по командной строке MSBuild.
-maxcpucount параметр MSBuild
При использовании переключателя -maxcpucount (-m) MSBuild создает указанное количество MSBuild.exe процессов, которые могут выполняться параллельно. Эти процессы также называются рабочими процессами. Каждый рабочий процесс использует отдельный ядро или процессор, если они доступны, для создания проекта одновременно, так как другие доступные процессоры могут создавать другие проекты.
Например, при задании этого переключателя значением 4, MSBuild создаёт четыре рабочих процесса для сборки проекта.
Если параметр -maxcpucount включен без указания значения, MSBuild использует до количества процессоров на компьютере.
Дополнительные сведения об этом коммутаторе см. в справочнике по командной строке MSBuild.
Пример ниже указывает, как использовать MSBuild для трех рабочих процессов. С помощью этой конфигурации MSBuild может одновременно создавать три проекта.
msbuild.exe myproj.proj -maxcpucount:3
Параметр BuildInParallel в задаче MSBuild
BuildInParallel — необязательный логический параметр, который можно задать в задаче MSBuild. Если заданы значения BuildInParalleltrue (по умолчанию), создается несколько рабочих процессов, чтобы одновременно создавать как можно больше проектов. Чтобы этот параметр работал правильно, установите переключатель -maxcpucount на значение больше единицы.
При использовании MSBuild для параллельного создания он работает только для одного вызова задачи MSBuild. Поэтому при вызове пакетной обработки задач параллелизм ограничен каждым пакетом. Дополнительные сведения см. в разделе пакетной обработки MSBuild.
В следующих примерах показано, как создать целевой объект в файле проекта с несколькими разными значениями свойств параллельно с помощью BuildInParallel параметра.
В этом примере файл do_it.proj проекта имеет целевой объект, который печатает другое сообщение для каждого SourceValue.
<Project>
<Target Name="DoIt">
<Message Text="For this invocation SourceValue='$(SourceValue)'" Importance="High" />
</Target>
</Project>
Следующий проект создает указанный целевой объект DoIt в проекте с именем do_it.proj параллельно, используя список элементов и AdditionalProperties метаданные для указания различных значений свойства SourceValue.
<Project>
<ItemGroup>
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test1" />
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test2" />
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test3" />
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test4" />
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(_Project)" Targets="DoIt" BuildInParallel="true" />
</Target>
</Project>