«Точка останова в настоящее время не будет достигнута. Исходный код отличается от оригинальной версии». Что это значит? - PullRequest
477 голосов
/ 18 марта 2010

При отладке в Visual Studio иногда я добавляю точку останова, но она пустая, и VS говорит: «В данный момент точка останова не будет достигнута. Исходный код отличается от исходной версии» Очевидно, это не дает мне возможности отлаживать.

Что на земле означает сообщение? Какая оригинальная версия? Если я только что открыл решение и не внес никаких изменений в код, как может существовать «оригинальная версия»?

Ответы [ 45 ]

8 голосов
/ 06 декабря 2017

Для меня ни один из пунктов не решил проблему. Я просто добавил новую строку кода внутри этой функции, что-то вроде:

int a=0;

добавив, что, я думаю, я вызвал Visual Studio, чтобы добавить эту функцию в исходную версию

7 голосов
/ 03 апреля 2015

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

  • Solution Explorer
    • Решение правой кнопкой мыши
      • Свойства
        • Общие свойства
          • Отладка исходных файлов
            • «Не ищите эти исходные файлы».

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

4 голосов
/ 09 апреля 2013

Я тоже с этим столкнулся. Условия, вызвавшие мою проблему:

  • Я запускаю полный экземпляр IIS7 локально
  • Я делаю версию своего программного обеспечения на отдельные проекты

Я вызвал это, открыв предыдущую версию (VS попросил спросить, хочу ли я указать на этот экземпляр в отладке IIS, я ответил «Да»), а затем открыл текущую версию (снова отвечая на приглашение IIS с «Да»), затем попытка отладки в предыдущей версии.

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

4 голосов
/ 19 сентября 2011

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

Точка останова будет устранена после загрузки активатором сборки (при условии, что символы сборки и отладки обновлены). Хорошее место для просмотра - окно модулей в меню отладки. Там вы должны искать сборку, к которой принадлежит и ваш файл. Сначала проверьте, что сборка загружена. Тогда откуда он загружается? Затем загружается файл символов. Опять же, откуда загружается файл символов? Наконец проверьте версии обоих.

4 голосов
/ 06 мая 2010

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

3 голосов
/ 15 мая 2013

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

3 голосов
/ 30 апреля 2012

Это также происходит при отладке проекта C ++, который загружает модуль, который был реализован с использованием некоторого языка CRL (Managed C ++, C # и т. Д.). В этой ситуации сообщение об ошибке действительно вводит в заблуждение.

Решение состоит в том, чтобы поместить Общедоступную языковую поддержку (CLR) свойство конфигурации в запускаемый проект и перекомпилировать его.

3 голосов
/ 05 апреля 2018

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

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

Надеюсь, это поможет ..

3 голосов
/ 14 апреля 2016

перейти к:

Инструменты> Параметры> Отладка> Общие> не проверено" Требуется источник файлы точно соответствуют оригинальной версии"

3 голосов
/ 21 марта 2015

Проблема в том, что ваша информация отладки не синхронизирована с вашей сборкой. Решение простое:

  1. Перейдите в папку bin
  2. Удалить файлы .pdb
  3. Перестройка

Должен сделать свое дело!

(странно то, что перестройка без выбрасывания файлов .pdb не всегда работает. Я вижу обновленную дату обновления, но все еще где-то в цепочке (отладчик VS2013, IIS, кеш сборок) это изменение не обнаружен)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...