Вопрос:

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

.net visual-studio debugging

247848 просмотра

30 ответа

7690 Репутация автора

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

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

Автор: David Источник Размещён: 18.03.2010 10:01

Ответы (30)


36 плюса

8573 Репутация автора

Ты когда-нибудь делал это?

Хотите продолжить и запустить последнюю успешную сборку?

Если вы отметили флажок и нажали «Да», вы запустите последнюю успешную сборку, даже если ваш проект не компилируется. Это означает, что всякий раз, когда вы устанавливаете точку останова, вы получите эту ошибку.

Попробуйте изменить это значение:

  • инструменты
    • Опции
      • Проекты и Решения
        • Построить и запустить
          • При запуске, когда возникают ошибки сборки или развертывания: Не запускать
Автор: Codesleuth Размещён: 18.03.2010 10:11

8 плюса

8322 Репутация автора

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

Автор: Mike Mooney Размещён: 18.03.2010 10:29

24 плюса

3174 Репутация автора

Обратите внимание на окно «Вывод» в VS. Он скажет вам, какие сборки загружены и когда. Возможно, вы видите, что загружается более старая версия вашей сборки где-то в папке.

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

Автор: Tormod Размещён: 18.03.2010 11:14

4 плюса

11 Репутация автора

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

Автор: Tomi Размещён: 06.05.2010 06:34

250 плюса

367 Репутация автора

Как говорится, «исходный код отличается от оригинальной версии».

Щелкните правой кнопкой мыши папку проекта в обозревателе решений и выберите Clean. Создайте новую версию проекта, и точка останова снова заработает!

Автор: André Alves Размещён: 09.11.2010 01:52

120 плюса

6986 Репутация автора

Если вы не отметили проект DLL в конфигурации сборки Debug , ваш новый код никогда не будет собран!

Перейдите к Build --> Configuration Manager ...(в VS2010) и проверьте, проверен ли проект с кодом, который вы пытаетесь отлаживать, на текущую конфигурацию сборки.

Автор: Oliver Размещён: 13.01.2011 10:01

4 плюса

558 Репутация автора

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

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

Автор: David Burg Размещён: 19.09.2011 06:31

28 плюса

31 Репутация автора

Идти к

  • инструменты
    • Опции
      • отладка
        • генеральный

Снимите флажок Требовать исходные файлы, чтобы точно соответствовать оригинальной версии

Автор: Rachmad Размещён: 09.01.2012 04:17

40 плюса

2360 Репутация автора

Для меня это было во время работы над проектом WebSite. После очистки этих временных папок я получил правильные ошибки компилятора:

  • C:\Documents and Settings\%username%\AppData\Local\Temp\Temporary ASP.NET Files
  • C:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

Я наконец решил проблему, когда обнаружил, что файл класса, который я намеренно переместил в подпапку, каким-то образом появился в корневой папке. VS использовал это, пока я редактировал другое.

Автор: AnthonyVO Размещён: 09.01.2012 06:32

3 плюса

11 Репутация автора

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

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

Автор: MaR Размещён: 30.04.2012 10:18

2 плюса

41 Репутация автора

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

Автор: John Размещён: 15.05.2012 09:11

27 плюса

509 Репутация автора

Выберите « Отладка» в конфигурациях решения вместо выпуска

скриншот меню

Автор: AdiKonstantin Размещён: 23.01.2013 12:48

4 плюса

97 Репутация автора

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

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

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

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

Автор: baker.nole Размещён: 09.04.2013 05:28

3 плюса

3565 Репутация автора

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

Автор: MikeTheLiar Размещён: 15.05.2013 06:55

2 плюса

416 Репутация автора

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

Автор: silent tone Размещён: 19.08.2013 02:50

2 плюса

55 Репутация автора

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

Автор: Julen Размещён: 21.11.2013 02:30

24 плюса

21 Репутация автора

Закрытие Visual Studio и повторное открытие решения может решить проблему, то есть это ошибка в самой IDE (я использую VS2010).

Если у вас запущено несколько экземпляров Visual Studio, вам нужно только закрыть экземпляр, на котором запущено решение с проблемой.

Автор: Luke Whyte Размещён: 25.11.2013 09:57

2 плюса

1 Репутация автора

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

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

Автор: Pete Размещён: 18.03.2014 02:18

1 плюс

416 Репутация автора

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

Автор: silent tone Размещён: 16.09.2014 11:29

2 плюса

36471 Репутация автора

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

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

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

Автор: Teoman shipahi Размещён: 17.10.2014 07:24

3 плюса

804 Репутация автора

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

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

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

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

Автор: FrankyHollywood Размещён: 21.03.2015 08:45

3 плюса

9501 Репутация автора

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

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

Автор: displayName Размещён: 30.03.2015 06:19

7 плюса

1961 Репутация автора

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

  • Обозреватель решений
    • щелкните правой кнопкой мыши Решение
      • свойства
        • Общие свойства
          • Отладка исходных файлов
            • Msgstr "Не ищите эти исходные файлы".

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

Автор: JBSnorro Размещён: 03.04.2015 01:08

1 плюс

5457 Репутация автора

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

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

Автор: mj2008 Размещён: 12.05.2015 02:37

3 плюса

682 Репутация автора

идти к:

Сервис> Параметры> Отладка> Общие> не отмечено " Требовать, чтобы исходные файлы точно соответствовали исходной версии "

Автор: Long Field Размещён: 14.04.2016 06:10

19 плюса

1417 Репутация автора

Новый способ решения этой проблемы появился в Visual Studio 2017 с 15.3.1 по 15.3.5. Если вы используете EditorConfig , charset=utf8опция вызывает эти симптомы. Команда VS воспроизвела это и говорит, что работает над этим .

Поэтому одно из исправлений - закомментировать вашу charset=utf8строку в файле .editorconfig.

Изменить: это должно быть исправлено с VS 15.5.

Автор: John Hatton Размещён: 03.10.2017 03:51

2 плюса

7888 Репутация автора

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

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

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

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

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

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

Автор: nurettin Размещён: 21.10.2017 08:40

3 плюса

1395 Репутация автора

Для меня решение было скрыто в Advanced Build Settingsсвойствах проекта: введите описание изображения здесь

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

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

Автор: riqitang Размещён: 26.10.2017 04:37

6 плюса

1149 Репутация автора

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

int a=0;

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

Автор: Mehrdad Babaki Размещён: 06.12.2017 12:02

3 плюса

586 Репутация автора

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

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

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

Автор: Priyankara Размещён: 05.04.2018 10:09
Вопросы из категории :
32x32