Подтвердить что ты не робот

Visual Studio 2010, как строить проекты параллельно на многоядерных

У меня есть большое решение с более чем 40 проектами. Почти половина из них - тестовые проекты. В моем проекте мы используем как Code Contracts, Code Analysis, Style Analysis. Я хочу, чтобы иметь возможность строить проекты, которые не зависят параллельно на моем четырехъядерном процессоре.

Как настроить msbuild для параллельной сборки проектов?

4b9b3361

Ответ 1

В Visual Studio: Инструменты | Варианты | Проекты и решения | Построить и запустить. Это должно быть указано по умолчанию для вашего процессора.

Из командной строки: msbuild /maxcpucount[:n] (is n не указан, тогда он будет использовать подсчет CPU).

Ответ 2

Вы можете запустить сборку в MSBuild параллельно:

  • Настройка атрибута BuildInParallel задачи MSBuild на true

    <Target Name="RunInParallel">
      <MSBuild BuildInParallel="true"
               Projects="@(Projects)"
               Targets="RunCodeAnalysis">
      </MSBuild>
    </Target>
    
  • Или вызов msbuild с параметром /maxcpucount:X, где X указывает количество рабочих процессов, участвующих в сборке. Это решение лучше соответствует вашим потребностям.

    msbuild [YourSolutionFile.sln] /maxcpucount:4 /p:Platform=AnyCpu;Configuration=Debug;
    
Скотт Хансельман написал сообщение , если вы хотите интегрировать (kinda) процесс в Visual Studio в качестве внешнего инструмента.

Для проектов на С++ вы можете настроить многопроцессорную сборку непосредственно в Visual Studio:

Tools | Options | Projects and Solutions | Build and Run

Ответ 3

Я знаю, что есть клон nmake, который поддерживает -j-переключатель для компиляции параллельно:

http://qt.gitorious.org/qt-labs/jom

и есть также взлом для MSbuild, просто Google. Я также знаю, что есть инструмент, который поддерживает создание на нескольких машинах и, возможно, также на нескольких ядрах, но я не помню его имени на данный момент.

надеюсь, что это поможет.

Ответ 4

Тогда реальный ответ, который вы ищете, - это добавить флаг компилятора /MP в флагов компилятора CXX.

В Visual Studio На странице свойств проектa > C\С++ > Общая многопроцессорная компиляция просто введите Да (/MP). Теперь он будет строить все 40 проектов параллельно на каждом из ядер

Ответ 5

Теперь это встроено для Visual Studio 11 для всех языков, а не только для С++. "Visual Studio 2010 включил опцию" Максимальное количество параллельных проектов ". Несмотря на отсутствие каких-либо ограничений, этот вариант IDE работал только для проектов на С++. К счастью, это ограничение больше не применяется к Visual Studio 11" из www.visualstudiomagazine.com