2009-05-14 3 views
2

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

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

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

Я строию VS2008 Professional Edition.

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

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

Спасибо.

+0

Если вы запускаете msbuild в папке, содержащей это решение, требуется гораздо меньше времени? –

ответ

3

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

+0

Не могли бы вы рассказать об этом, пожалуйста? Вы имеете в виду местоположение пути исходных файлов в проекте или определенные переменные в сетевых ссылках на ссылки приложения? У меня есть проект, который не будет построен на моей новой машине, в то время как другие делают это, и я в тупик ... – andyhasit

3

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

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

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

+0

Многие из зависимостей похожи на многие из упомянутых выше второму примеру проекта и прекрасно строят. Глядя ближе, я не вижу ничего странного. Re: Ваш второй пункт, согласился. И, глядя в ассамблеи сборки в будущем. – Grant

0

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

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

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

+0

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

2

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

+0

благодарит Харлеву, даст ему шанс – Grant

0

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

+0

нет его приложения для winforms/class library. C# и vb.net – Grant

 Смежные вопросы

  • Нет связанных вопросов^_^