Проблема со встроенной сборкой, не совпадающей с источником при отладке в IIS 7.5

У меня проблема с отладкой приложения веб-форм, которое настроено на использование IIS для отладки под Windows 7 и Visual Studio 2010. Только что произошел пример, в котором я вношу изменения в код веб-формы, сохраняю и, по-видимому, перестройте перед запуском приложения с помощью F5.

Приложение запускается, и я получаю сообщение об ошибке, пытаясь что-то сделать в приложении. Я говорю отладчику, чтобы он прервался, когда возникает исключение, и снова пытаюсь выполнить свою задачу, только чтобы мне сказали

Исходный файл отличается от файла, в котором был создан модуль.

где модуль C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\9d7b45ca\11a98b19\assembly\dl3\5e6cf0b2\636409d4_dfeecb01\PerfixEMS_Admin.DLL

Физическая папка для моего тестового веб-сайта настроена на исходную папку проекта веб-приложения, поэтому я всегда предполагал, что IIS будет искать в папке bin необходимые сборки, и они будут перестроены, как ожидалось. Почему этого не происходит?


person ProfK    schedule 31.03.2011    source источник


Ответы (2)


Очистка раствора обычно у меня работает.

Обновить

Учитывая большое количество (320) проектов, я понимаю, почему Clean и Build вам не подходят. Однако вы должны попробовать его хотя бы один раз, чтобы увидеть, исправляет ли что-то.

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

Очистите только один файл

Удалите проблемный временный файл. Вероятно, вы не сможете этого сделать, потому что при работе VS может быть заблокирована DLL. Возможно, вам также придется остановить IIS. Вы можете использовать Process Explorer для поиска заблокированных процессов. .

Используйте индивидуальное решение

Маловероятно, что вы собираетесь изменять все 320 проектов одновременно. Создайте индивидуальное решение только для проектов, над которыми вы работаете. Вы по-прежнему сможете пройти через любой проект, для которого у вас есть DLL и PDB, если вам это нужно.


Что делать

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

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

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

person Conrad Frix    schedule 31.03.2011
comment
Я, проблема - это решение содержит 320 проектов. Просто очистка его занимает некоторое время, не говоря уже о строительстве после этого. - person ProfK; 31.03.2011
comment
+1 за индивидуальное решение. Большая часть моей работы связана только с презентационной стороной вещей, поэтому я могу оставить только ее в качестве источника в настраиваемом решении. - person ProfK; 01.04.2011

это может быть обходной путь, но мне просто нужно посмотреть, сработает он или нет, тогда мы сможем исследовать более подробно исходный случай. а пока попробуйте следующее:

1- опубликуйте этот сайт в другой папке

2- откройте недавно опубликованную версию в предпочтительном браузере (например, http://localhost/APP_NAME).

3- в VS откройте меню «Отладка», выберите «Прикрепить к процессу ...»

4- выберите рабочий процесс IIS «w3wp.exe» и нажмите «Присоединить».

(если вы не можете его найти, убедитесь, что установлен флажок "показывать процессы во всех сеансах")

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

person Mohammed Swillam    schedule 31.03.2011