2012-09-09 10 views
0

У меня есть решение, что один из его проектов занимает слишком много времени для компиляции и редко изменяется. Это означает, что если разработчику «ReBuild» для всего решения потребуется время (хотя в этом конкретном проекте ничего не было изменено).Лучшая практика, чтобы избежать перестройки в vs2010

Мне было предложено добавить некоторую «командную строку события предварительной сборки», но как именно я проверю, нужно ли компилировать (я хочу, чтобы она была скомпилирована из нее была изменена)? и - если я смогу это сделать - это хорошая практика? (в терминах непрерывной интеграции и т. д.)

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

+0

есть ли конкретная причина, вы должны восстановить весь проект, вместо того, чтобы позволить IDE компилирует только файлы, которые были изменены? –

+1

Я бы избегал любых трюков, которые мешают некоторым частям строить, когда функция вашей IDE явно говорит, что это сделает. Это приведет только к ситуациям, когда вы думаете: «Почему, похоже, это не заставляет меня менять мои?». Во всяком случае, только мои 2 цента ... – Bart

+0

хороший вопрос. некоторые из разработчиков здесь используют, чтобы нажать «rebuild». Это часть их «чистого» потока, который они хотят проверить, чтобы DLL снова перестраивались с нуля. они не заботятся об этом конкретном проекте, потому что его обрабатывает другая команда в том же исходном потоке. поэтому я не хочу, чтобы они меняли привычку. – user1025852

ответ

2

ВС, как правило, выясняет, что нужно перестроить и только скомпилировать соответствующие проекты. Есть несколько шагов, которые можно предпринять, хотя:

  • избежать изменений в заголовки, это триггер перестроение всех единиц перевода, которые включают их
  • использовать предварительно скомпилированные заголовки
  • использует форвардные декларации вместо включают в файлы заголовки (где это возможно)
  • перерыва больших решений в модульные проекты, которые связывают динамически друг с другим
+0

Я также хотел бы избегать шаблонов, когда это возможно –

+0

Что вы подразумеваете под шаблонами? – user1025852