Медленная компиляция проекта веб-развертывания ASP.NET в Visual Studio 2010 - PullRequest
17 голосов
/ 29 февраля 2012

Я перенес большое решение ASP.NET из Visual Studio 2008 (.NET 3.5) в Visual Studio 2010 (.NET 4.0).

Я также установил новую версию проекта веб-развертывания для VS 2010, потому что решение также включает проект веб-развертывания , который я использую для прекомпиляции .aspx / .ascx и т. Д.в одну DLL.

Я заметил, что новая версия проекта веб-развертывания требует гораздо больше времени для компиляции и объединения сборок - вместо 5 минут в VS2008 это занимает 15или 20 минут в Visual Studio 2010.

Кто-нибудь знает, что может быть причиной такой потери производительности?

UDPATE

Я запустилДиспетчер процессов во время компиляции.Он показал мне, что aspnet_merge тратит много времени на доступ к сборкам (файловый ввод-вывод), которые, по моему мнению, не должны быть частью процесса слияния.

Например, даже сборки .NET Compact Framework, на которые, я уверен, я ни на что не ссылаюсь, доступны на файловом уровне (по крайней мере, это показывает диспетчер процессов Sysinternal.)

Ответы [ 5 ]

1 голос
/ 01 ноября 2012

Используете ли вы NuGet в своем проекте?Если это так, попробуйте удалить автозагрузку перед сборкой.

1 голос
/ 06 марта 2012

Ваша проблема в том, что решение очень велико, и проект веб-развертывания копирует его из одного каталога в другой, поэтому требуется так много времени, что вам нужно сделать, чтобы исключить развертывание нежелательных папок (Для этого выполните следующие простые действия:

  1. Щелкните правой кнопкой мыши проект веб-развертывания и выберите Открыть файл проекта.

  2. в файле wdproj вы увидите тег с именем <ItemGroup>

  3. Внутри этого тега добавьте следующую строку: <ExcludeFromBuild Include=”$(SourceWebPhysicalPath)\FolderName\**\*.*” />

  4. Сохраните и закройте файл wdproj, и все, вы можете попробовать собрать сейчас.

1 голос
/ 06 марта 2012

Я также установил новую версию проекта веб-развертывания для VS 2010, поскольку решение также включает проект веб-развертывания, который я использую для предварительной компиляции .aspx / .ascx и т. Д. В одну DLL * 1002.*

удалите текущий проект веб-развертывания, а затем добавьте новый: щелкните правой кнопкой мыши Сайт -> Добавить проект веб-развертывания (если вы перенесли текущий из VS 2008).

У меня есть решение с 100проекты и имели плохое заполнение, когда он был построен (около 15-20 минут) .. но потом я удалил HDD и поставил SSD, и теперь я счастлив .. 3-4 минуты на сборку!

1 голос
/ 05 марта 2012

было примерно то же самое.проверка процессов и подкачка показали нехватку памяти.VS2010 менял ноги.Так что обновил память до 6Гб и работает как солнечный свет.Какая у вас аппаратная конфигурация?

0 голосов
/ 23 февраля 2014

Я думаю, что в ASP 4.0 они начали включать автоматические ссылки на библиотеки JQuery. В папке scripts должен быть файл jquery1.4.1.min.js, удаляющий этот файл из проекта. свернутые файлы такие же, как и другие, но сжаты в одну строку кода, которую сложнее компилировать, но лучше для серверов. Вы также можете просто избавиться от этих библиотек вместе, если не планируете использовать JQuery, потому что это может быть более сложным для других вещей.

...