Какие части решения .NET вызывают медленную компиляцию? - PullRequest
3 голосов
/ 06 октября 2011

У моего работодателя есть решение с 14 проектами, и, по совпадению, для компиляции всего приложения требуется ровно 14 секунд.Это затрудняет внесение изменений и повторную компиляцию - много потерянного времени.Что можно найти в приложении .NET, чтобы ускорить компиляцию?Или я могу спросить, какие инструменты лучше всего подходят для устранения подобных проблем.(Чтобы узнать, что происходит с msbuild.exe)

Сведения о решении:

  • строго типизированные наборы данных с службами Reporting Services
  • служб WCF
  • комбинация проектов C # и VB.NET
  • один проект веб-приложения
  • ресурсы (файлы resx) повсеместно
  • Корпоративная библиотека (могу получитьКонкретно, если я вам нужен)
  • Блок приложения Microsoft UIProcess для навигации по мастеру
  • Microsoft AJAX Control Toolkit
  • PdfSharp

Пожалуйста, спросите, можете ли вынужно больше деталей.

Ответы [ 5 ]

3 голосов
/ 06 октября 2011

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

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

2 голосов
/ 07 октября 2011

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

2 голосов
/ 06 октября 2011
  • Если вы используете контроль источников с локальными файлами, например, SVN стоит отключить антивирус на вашем кодовом каталоге.
  • Установить Копировать в выходной каталог в Не копировать , если вы не можете сделать это, используйте Копировать, если новее
  • Если возможно, удалить все события до / после сборки
  • Если у вас есть проект WebSite, переключитесь на WebApplication
  • Для выгрузки и загрузки проектов вы можете использовать Solution Load Manager .
2 голосов
/ 06 октября 2011

Чтобы ускорить сборку, выгрузите проекты, над которыми вы не работаете. В обозревателе решений щелкните правой кнопкой мыши проект и выберите «Разгрузить проект». Вы можете выбрать несколько проектов и выгрузить их все одновременно. При сборке выгруженные проекты не будут создаваться.

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

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

2 голосов
/ 06 октября 2011

При обращении к другим проектам VS убедитесь, что для параметра "copy local" установлено значение false, если вам это не требуется по определенной причине.

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

Это не долго, хотя!

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