Visual Studio Время сборки - PullRequest
2 голосов
/ 14 мая 2009

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

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

Я просмотрел файлы CSPROJ и файлы SLN и не вижу ничего очевидного, что могло бы остановить компиляцию.

Я создаю VS2008 Professional Edition.

NB. Использование сценариев NANT, использующих MSBUILD.exe, работает экспоненциально быстрее -> Таким образом, что-то в VS вызывает значительное замедление.

Есть ли у кого-нибудь какие-либо предположения в отличие от воссоздания всего решения с нуля?

Спасибо.

Ответы [ 5 ]

3 голосов
/ 14 мая 2009

Обнаружено, что файлы проекта ссылаются на сетевые пути, а не на локальные. изменив эти значения, верните время сборки в нормальное состояние. Спасибо всем, кто ответил.

3 голосов
/ 14 мая 2009

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

Кроме того, вам действительно нужно 100 проектов в одном решении? Думаю, все будет довольно медленно. Я хотел бы либо попытаться объединить проекты (я видел разные ситуации, когда у людей было много и много крошечных проектов - объединение их действительно помогло), либо разделить одно решение на несколько.

РЕДАКТИРОВАТЬ: Одна вещь, которую вы могли бы попытаться вывести из уравнения с помощью графической части Visual Studio, это собрать ее с msbuild из командной строки, без VS вообще.

2 голосов
/ 14 мая 2009

Возможно, используйте инструмент, подобный FileMon , чтобы отслеживать, что VS пишет / читает во время задержки. Может быть, это даст вам подсказку. Я обнаружил, что это очень полезно для понимания того, что делают приложения (при условии отслеживания активности ввода-вывода)

0 голосов
/ 14 мая 2009

Есть ли в медленном решении много файлов / проектов ASP.NET? Компиляция тегов всегда занимает больше времени, чем чистый C # / VB

0 голосов
/ 14 мая 2009

Есть ли у вас какие-либо плагины Visual Studio, которые могут выполнять что-то вроде индексации файлов при их создании?

Вы установили параметры для использования всех процессоров, доступных на вашем компьютере?

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

...