Глобальный.асакс.cs-файл не перекомпилируется--файл допустим


Я недавно рефакторил некоторый код, и метод оригинальный глобальный.асакс.cs-файл зависел от того, что больше не был статичным. Когда я внес изменения в свой Глобал.асакс.код cs чтобы устранить проблему компиляции, сервер разработки VisualStudio все еще сообщает о старой проблеме. Чтобы сделать вещи более запутанными, он сообщает о старой проблеме с новым исходным кодом.

Когда я запускаю сервер разработки, я получаю контрольный экран ошибки, говорящий:

Метод не найден: - Система.Безопасность.Главный.Iprincipal Точно Пример.Учетная документация.AuthenticationManager.GetPrincipleForUserName (System.Строка);

Это первоначальное исключение было расположено в строке 54-что не должно иметь значения ни для вас, ни для меня, ни для кого-либо еще. Однако это имеет значение для сервера разработки. Независимо от того, на что я изменяю код, даже полностью комментируя исходный код, я получаю одно и то же сообщение об ошибке. Единственное отличие-это фрагмент кода, который он отображает. В настоящее время он указывает на комментарий линия.

Итак, DevelopmentServer видит старый скомпилированный код, а VisualStudio - новый. Я не могу установить точку останова, потому что VisualStudio говорит мне, что исходный код отличается от исходной версии.

Как заставить DevelopmentServer увидеть новый код, который работает?

1 2

1 ответ:

С тех пор я нашел реальную причину, почему это происходит, и это также влияет на проблему "символы, не загруженные для этого класса" при попытке отладки приложения. Проблема связана с путем к библиотекам DLL. Если веб-приложение является частью более крупного решения и кто-то изменяет конфигурацию решения, Visual Studio изменит путь вывода сборки.

По умолчанию выходной путь сборки для отладки находится в папке ~\bin\. Это делается для того, чтобы Кассини мог найти библиотеки DLL и файлы PDB. Когда кто-то редактирует главную конфигурацию и изменяет архитектуру, VisualStudio автоматически обновит целевой выходной каталог до "~\bin{architecture}\Debug". Вы должны вручную войти в свойства вашего проекта и установить выходной каталог в "bin\" для отладки снова. Как только вы это сделаете, он снова заработает.

--- Оригинальный Ответ:

Единственное, что я мог сделать, чтобы заставить его работать, - это создать новый проект и скопировать весь мой код. Это не просто ... хороший ответ, но это лучшее, что я смог придумать. Тот же самый код бежал, как чемпион. После просмотра файла проекта строка за строкой, я не мог найти ничего, что могло бы объяснить поведение, которое я видел.