В Visual Studio, как сделать инкрементную сборку столь же быстрой, как сборка, инициируемая сеансом отладки? - PullRequest
7 голосов
/ 16 апреля 2011

У меня есть решение Visual Studio 2010 с 40-ю проектами (C # + один C ++ / CLI). У меня Visual Studio настроен так, что он собирает все решение до начала отладки.

Теперь предположим, что я изменил код для «конечного» проекта, от которого не зависит ни один другой проект. Когда я явно строю решение постепенно ( F6 или F7 ), я вижу строку вывода сборки для каждого проекта в моем решении. Современные проекты не перекомпилируются, хотя. Например, вы не видите предупреждений для проектов. Это займет время (возможно, 5-10 секунд).

Теперь предположим, что я снова изменяю тот же файл и начинаю отладку ( F5 ). Сейчас происходит что-то другое. Только измененный проект перекомпилируется (занимает около 1 секунды), а затем отладка начинается практически мгновенно.

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

Вопрос:

Есть ли способ вызвать эту более оптимизированную стратегию сборки вручную, без запуска сеанса отладки?

1 Ответ

2 голосов
/ 22 мая 2011

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

Если вы зайдете в Инструменты-> Параметры ... и посмотрите под Проекты и решения -> Построить и запустить , есть настройка под названием Детализация вывода сборки проекта MSBuild установка этого параметра на Normal или выше должна дать вам более глубокое понимание того, что на самом деле происходит, когда вы собираете vs debug. Вам нужно будет показать окно «Вывод» и установить его, чтобы отобразить выходные данные сборки, чтобы увидеть информацию из этого параметра.

Вы можете построить текущий проект, нажав Shift + F6, он должен иметь ту же скорость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...