В командном проекте, над которым я работаю, установка точки останова в файле (скажем IdeasController.cs) приведет к неустойчивому отладчику, если в решении будет другой файл с тем же именем. Я воспроизвел проблему на нескольких рабочих станциях разработчиков.
Пример
Я установил точку останова в IdeasController.cs в нашем веб-API:
В нашем отдельном веб-проекте MVC 4 существует еще один файл с именем IdeasController.cs. На скриншоте ниже отладчик показывает исходный код Api->IdeasController, но выделение строки соответствует структуре кода Web->IdeasController. Точка останова дублируется, причем одна из них находится в середине блока комментариев.
В окне Breakpoint отображается точка останова в обоих файлах одновременно:
На некоторых рабочих станциях отладчик выполняет правильные строки (независимо от выделения строки); на других он бодро проходит через нерелевантные строки (включая комментарии и пробелы). Я предполагаю, что это зависит от того, какой исходный файл он отображает.
Что я пробовал
Я трал Интернет. Такая проблема возникает, когда существует несоответствие между отладочным файлом (*.pdb), исходным файлом и скомпилированным кодом. Существует много возможных причин: дублировать имена файлов (которые могут смутить отладчик [5]), устаревший проект создавать файлы, недействительный кэш решений или некорректную конфигурацию сборки.
Это решения, которые я нашел и попробовал:
- Проверьте мою конфигурацию сборки.
- Убедитесь, что проект не создан в режиме выпуска.
- Убедитесь, что не поддерживают оптимизацию кода.
- Убедитесь, что модуль отладки проекта загружен правильно. (Начала отладку проекта и проверила
Debug>Windows>Modules. Обе сборки перечислены, не оптимизированы и имеют статус символа "Символы загружены".)
- Reset метаданные отладки и кеш Visual Studio.
- Закрыл Visual Studio и удалил файл кэша решения (
*.suo). [1] - Удаляет каждый вывод сборки проекта (папки
binиobj). (Для справки в будущем: откройте папку решений в проводнике Windows и введите ее в поле поиска: "type:folder AND (name:=bin OR name:=obj)". - Удалена папка кэша сборки (
C:\Documents and Settings\<user>\Local Settings\Application Data\dl3). [2] [3]
- Закрыл Visual Studio и удалил файл кэша решения (
Ни один из них не имел никакого эффекта. Я могу переименовать один из файлов (без переименования класса), чтобы временно решить проблему, но это далеко не идеально.
Где я сейчас
Страница 14 моего последнего поиска Google. Предложения будут высоко оценены.:)


