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

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

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

Ответы [ 45 ]

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

Если в вашем решении более одного проекта , убедитесь, что в качестве StartUp Project указан правильный проект. Чтобы установить конкретный проект в качестве проекта запуска вашего решения, щелкните проект правой кнопкой мыши и выберите Set As StartUp Project.

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

3 голосов
/ 26 октября 2017

Для меня решение было скрыто в Advanced Build Settings свойствах проекта: enter image description here

По неизвестной причине он был установлен на none: установка на full вызывала срабатывание точек останова.

Чтобы попасть в это диалоговое окно, откройте свойства проекта, затем перейдите к Build, затем нажмите кнопку Advanced... внизу страницы.

2 голосов
/ 19 августа 2013

В моем случае я подключался к запущенному процессу в VS 2012. При подключении вам предоставляется возможность отладки в различных режимах (нативный, скрипт, silverlight, управляемый 2.0, управляемый 4.0 и т. Д.). По умолчанию отладчик выбирает режим автоматически. Однако Автомат не всегда делает правильный выбор. Если ваш процесс содержит несколько типов кода, убедитесь, что отладчик использует правильный.

2 голосов
/ 21 октября 2017

Я испытал это в 32-битной сборке на vs2017.

Точно ни одно из решений не сработало для меня. Я перезапустил, я очистил файлы IDE, очистил построенное решение, вытащил из git repo и перестроил решение безрезультатно.

Я вытягивал 64-битную зависимость из nuget, и как только я использовал сборку, исходные коды больше не встраивались в конечный исполняемый файл, а вместо этого создавались кешированные источники IDE.

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

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

Редактировать: во время сборки не было ошибок, несмотря на то, что в настройках IDE была включена опция «запросить ошибку сборки».

2 голосов
/ 17 октября 2014

Сначала я попробовал из командной строки;

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

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Временные файлы ASP.NET> корень rd / s

Когда я отключаю опцию «Включить только мой код» в Сервис -> Параметры -> Отладка -> Общие

Проблема решена для меня. Это приложение WCF, пыталось отладить страницу Ashx. http://blogs.msdn.com/b/zainnab/archive/2010/10/25/understanding-just-my-code.aspx

2 голосов
/ 21 ноября 2013

В моем случае я разрабатывал приложение для Windows CE, которое тестировалось на эмуляторе. Проблема заключалась в том, что исполняемый файл не был развернут в эмуляторе, поэтому .pdb (в среде разработки) был не синхронизирован с .exe (в эмуляторе), поскольку новый .exe никогда не копировался в эмулятор. Мне пришлось удалить .exe в эмуляторе, чтобы вызвать новое развертывание. Тогда это сработало.

2 голосов
/ 16 мая 2012

Для меня сработало изменение платформы решения с x86 на любой процессор.Изменив значение Any, я установил конечный адрес, запустил веб-сайт, открыл страницу, нажал кнопку, и он остановился.Я закрыл сайт, переключился обратно на x86 и успешно выполнил ту же последовательность действий.

2 голосов
/ 18 марта 2014

В Windows 7, Visual Studio Express 2010, если вы активировали опцию Использовать режим совместимости для Windows XP SP3 , эта ошибка может возникнуть.

Я снял галочку с опции, и она снова отлично заработала. Щелкните правой кнопкой мыши ярлык VS или исполняемый файл, выберите properties , а затем compatibility .

1 голос
/ 12 мая 2015

Проверьте, есть ли в решении несколько файлов с таким именем.

У меня было это в проекте, который я перенял у кого-то другого. Список точек останова был полон номеров строк в Controller.cs, некоторые активные, а некоторые нет. Я нашел этот вопрос и попробовал несколько вариантов, но когда я дважды щелкнул по контрольным точкам, они перенесли меня в разные проекты в рамках решения. Поскольку файлы назывались одинаково, они кажутся одинаковыми, но это не так. Ответ, конечно, состоит в том, чтобы игнорировать предупреждения, так как они станут активными, если вы загрузите этот другой файл.

1 голос
/ 17 сентября 2014

Если ваш отлаженный процесс содержит несколько доменов приложений, и сборка загружается в оба, и один из них загружает старую копию (обычно что-то динамически загружаемое, например, плагин), точка останова может выглядеть сплошной, но поток, который должен достигнуть точки останова находится в домене приложения со старой сборкой и никогда не ударит. Вы можете увидеть, какие сборки загружены, и их путь в окне модуля.

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