Медленная компиляция проекта веб-развертывания ASP.NET в Visual Studio 2010

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

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

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

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

UDPATE

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

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


person splattne    schedule 29.02.2012    source источник
comment
Дважды проверьте .wdproj. Посмотрите на элемент Import Project xml в .wdproj и убедитесь, что путь к Microsoft.WebDeployment.targets правильно указывает каталог установки VS2010 проекта веб-развертывания.   -  person Brian Chavez    schedule 02.03.2012
comment
@BrianChavez спасибо за вашу помощь! Файл .targets кажется правильным, указывающим на версию VS2010.   -  person splattne    schedule 02.03.2012
comment
@splattne, извините, что задаете такой вопрос, но вы очистили вашу временную папку (как vs temp, так и win temp)? у вас была дефрагментация диска? Удалили ли вы старую ссылку на VS? - удалите файл .suo   -  person Aristos    schedule 03.03.2012
comment
Также исключает ненужную ссылку из вашего решения через visualstudiogallery.msdn.microsoft. ru /   -  person Kamran Shahid    schedule 08.11.2012
comment
Любое решение? Думаю отключить слияние, если скорость не улучшится.   -  person Nelson Rothermel    schedule 25.09.2014
comment
@ Нельсон, извини. Не нашел решения.   -  person splattne    schedule 26.09.2014


Ответы (5)


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

person Ton    schedule 05.03.2012
comment
8 ГБ. Я проверю Process Explorer при следующем запуске. - person splattne; 06.03.2012

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

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

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

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

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

person Ali Issa    schedule 06.03.2012
comment
Нет, это не моя проблема. aspnet_merge, кажется, длиться вечно. Спасибо, в любом случае! - person splattne; 06.03.2012

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

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

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

person mastak    schedule 06.03.2012
comment
Это было несколько месяцев назад, но я почти уверен, что создал проект веб-развертывания ex novo. - person splattne; 06.03.2012

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

person Roman    schedule 01.11.2012

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

person SinceForever    schedule 22.02.2014