Как заставить VS 2010 пропускать «сборки» проектов, которые не изменились?

Наш продукт включает более 100 проектов (500 + ksloc производственного кода). Большинство из них являются проектами на C #, но у нас также есть некоторые, использующие C ++ / CLI для связи с машинным кодом.

Восстановление всего решения занимает несколько минут. Хорошо. Если я захочу перестроить решение, я ожидаю, что это действительно займет некоторое время. Что не хорошо, так это время, необходимое для создания решения после полной перестройки. Представьте, что я использовал полную перестройку и теперь, не внося никаких изменений в решение, нажимаю Build (F6 или Ctrl + Shift + B). Почему нужно 35 секунд, если не было изменений? На выходе я вижу, что он начал «сборку» каждого проекта - он не выполняет настоящую сборку, но делает что-то, что отнимает значительное количество времени.

Задержка на 35 секунд - заноза в заднице. Да, я могу сократить время, не используя решение для сборки, а только проект сборки (Shift + F6). Если я запустил проект сборки на конкретном тестовом проекте, над которым я сейчас работаю, это займет «всего» 8 + с. Это требует, чтобы я запустил сборку проекта на правильном проекте (тестовый проект, чтобы убедиться, что зависимый проверенный код также построен). По крайней мере, средство запуска тестов ReSharper правильно распознает, что только этот единственный проект должен быть собран, а повторный тест обычно содержит только компиляцию 8+. Моя текущая кодировка Ката: не трогайте Ctrl + Shift + B.

Сборка тестового проекта займет 8 секунд, даже если я не буду вносить никаких изменений. Причина, по которой требуется 8 секунд, заключается в том, что он также «строит» зависимости = в моем случае он «строит» более 20 проектов, но я внес изменения только в модульный тест или одну зависимость! Я не хочу, чтобы это касалось других проектов.

Есть ли способ просто указать VS строить только проекты, в которых были сделаны некоторые изменения, и проекты, которые зависят от измененных (желательно, чтобы эта часть была еще одним вариантом сборки)? Боюсь, вы скажете мне, что это именно то, что делает VS, но в стиле MS ...

Я хочу улучшить свой опыт TDD и сократить время компиляции (в TDD компиляция может происходить дважды в минуту).

Чтобы еще больше расстроить это, я работаю в команде, где большинство разработчиков работали над проектами Java до того, как присоединились к этому. Итак, вы можете представить, как они злятся, когда им приходится использовать VS, в отличие от полной инкрементной компиляции в Java. Мне не требуется инкрементная компиляция классов . Ожидаю рабочей инкрементной компиляции решений. Особенно в таком продукте, как VS 2010 Ultimate, который стоит несколько тысяч долларов.

Я действительно не хочу получать ответы вроде:

  • Сделайте отдельное решение
  • Выгрузите проекты, которые вам не нужны
  • и т. Д.

Я могу прочитать эти ответы здесь . Это неприемлемые решения. Мы не платим VS за такие компромиссы.

45
задан Community 23 May 2017 в 11:53
поделиться