Странно, но крутая новая фишка Visual Studio 2012 проскочила практически мимо официальных анонсов.

Visual Studio 2012 научилась компилировать проекты в несколько потоков.

Сами по себе и Visual Studio 2010, и msbuild поддерживали параллельное построение уже достаточно давно. Но по какой-то неизвестной причине работали они “из коробки” только для проектов Visual C++. Для C# приходилось использовать обходные пути, вроде прикручивания mbuild через External Tools.

В Visual Studio 2012 ограничение “только для C++” убрали. Так что не удивляйтесь, увидев для своего проекта в output загадочные числа в начале каждой строки:

1>------ Rebuild All started: Project: ClassLibrary1, Configuration: Debug Any CPU ------
2>------ Rebuild All started: Project: ClassLibrary2, Configuration: Debug Any CPU ------
2>  ClassLibrary2 -> C:Users...ClassLibrary2binDebugClassLibrary2.dll
1>  ClassLibrary1 -> C:Users...ClassLibrary1binDebugClassLibrary1.dll
========== Rebuild All: 2 succeeded, 0 failed, 0 skipped ==========

Количество одновременно собираемых проектов задается в Tools > Options > Projects and Solutions > Build and Run:

image

Опция глобальная, включена по умолчанию, и действует на все проекты (в том числе и на сконвертированные из предыдущих версий Visual Studio). Надеюсь, внезапно ускорившиеся билды и нелинейный output не станут для вас неприятным сюрпризом 😉

1 Comment

  1. кстати, кроме ускорения и нелинейного output, возможны всякие не предсказуемые ошибки (там файла не оказалось, а там он еще не удален и все такое прочее). часть работы делается в pre- и post- build events со всеми вытекающими отсюда последствиями.
    придется более точно указывать кто от кого зависит. что может быть и более правильно.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>