Бавно компилиране на проект за уеб внедряване на 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 сега отнема 15 или 20 минути във Visual Studio 2010.

Някой знае ли каква може да е причината за такава загуба на производителност?

АКТУАЛИЗИРАНЕ

Пуснах Process Manager по време на компилацията. Показа ми, че aspnet_merge прекарва много време за достъп до (файл IO) сглобки, които според мен не трябва да са част от процеса на сливане.

Например, дори сглобките на .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 съжалявам, че задавам такъв въпрос, но почистихте ли временната си папка (както срещу temp, така и win temp)? дефрагментирахте ли диска си? Изчистихте ли старата препратка към VS? - изтрийте файла .suo   -  person Aristos    schedule 03.03.2012
comment
Също така изключва ненужната препратка от вашето решение чрез visualstudiogallery.msdn.microsoft. com/   -  person Kamran Shahid    schedule 08.11.2012
comment
Някакво решение? Мисля да изключа обединяването, освен ако скоростта не се подобри.   -  person Nelson Rothermel    schedule 25.09.2014
comment
@Nelson не, съжалявам. Не намерих решение.   -  person splattne    schedule 26.09.2014


Отговори (5)


имаше горе-долу същото нещо. проверката на процесите и размяната показаха липса на памет. VS2010 разменяше краката си. Така че паметта е надстроена до 6GB и работи като слънце. Каква е вашата хардуерна конфигурация?

person Ton    schedule 05.03.2012
comment
8 GB. Ще проверя Process Explorer следващия път, когато го пусна. - person splattne; 06.03.2012

Вашият проблем е, че решението е много голямо и проектът за уеб внедряване го копира от една директория в друга, поради което отнема толкова време. Това, което трябва да направите, е да изключите всички нежелани папки от разполагане (изображения, файлове , всичко, което не е необходимо), за да направите това, следвайте тези лесни стъпки:

  1. Щракнете с десния бутон върху проекта за уеб внедряване и щракнете върху Open Project File.

  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 минути).. но след това премахнах HDD и сложих 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