У меня есть проект веб-приложения, который я публикую через Visual Studio 2010 на моем сервере. Моя проблема в том, что это может занять очень много времени, прежде чем он действительно сможет опубликовать его. Может быть, 10 минут ! Это происходит не каждый раз, но очень часто.
Вот краткое изложение того, что у меня есть в консоли Вывод -> Построить, когда я пытаюсь опубликовать:
- Проект компилируется - ОК
- Подключение к C: \ Users {пользователь} \ Desktop \ MyProjectTest ... ( это может занять до 10 минут )
- Файлы публикуются ...
Process Explorer
Когда я открываю ProcessExplorer, я вижу, что devenv.exe
забирает весь процессор. Когда я открываю этот процесс, я вижу, что задача, которая потребляет весь ЦП, равна clr.dll!StrongNameSignatureVerification+0x11ee1
. Как только эта задача завершится, через 10 минут задача публикации завершится быстро.
Монитор процесса
С помощью Process Monitor я отслеживал TID файла clr.dll! StrongNAmeSignatureVerification и получил МНОГИЕ события повторного создания. Более 5 минут задача пытается получить доступ к файлу, которого у меня нет на моем компьютере. Он ищет Microsoft.Build.Task.resources.dll
. Это как если бы задача публикации пыталась снова и снова и снова что-то, чего не существует. Для вашей информации я использую Windows 7 Французский с Visual Studio 2010 English . На скриншоте вы видите 10 событий из более чем 2000 событий одного и того же!
Подробнее о моей настройке
Вот некоторая информация, которая может помочь выявить проблему:
- Мое приложение построено с использованием MVC3
- У меня есть несколько сторонних библиотек. Некоторые из них подписаны.
- Я публикую с методом файловой системы.
- Я попытался опубликовать на своем локальном компьютере, и проблема также существует, так что это не проблема сети между моим компьютером и моим сервером.
- Я тестировал на Windows 7 x86 & x64 Французское издание
- My Visual Studio 2010 с пакетом обновления 1 (SP1) - английское издание
ОБНОВЛЕНИЕ 2011-09-23
Теперь я знаю, как решить проблему НО Я не знаю, что является причиной этого. Если я удалю файл **. Suo (на том же уровне, что и файл .sln) и снова открою Visual Studio, публикация будет действительно быстрой. Поэтому повторная инициализация файла .suo, похоже, решает проблему каждый раз, когда публикация замедляется.
Просто чтобы сделать еще один тест, я сделал резервную копию файла .suo, когда публикация была медленной, и удалил его. Теперь публикация быстро. Если я скопирую файл .suo обратно на его место и снова открою Visual Studio, публикация снова будет медленной. Так что, похоже, все указывает на этот файл.
Есть идеи по этому поводу?