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

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

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

397
18 марта '10 в 13:01
источник поделиться
40 ответов
  • 1
  • 2

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

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

213
09 нояб. '10 в 16:52
источник

Связанные вопросы


Похожие вопросы

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

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

108
14 янв. '11 в 1:01
источник

Для меня это было во время работы над проектом 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 использовал тот, пока я редактировал другой.

34
09 янв. '12 в 21:32
источник

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

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

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

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

  • Инструменты
    • Параметры
      • Проекты и решения
        • Сборка и запуск
          • При запуске при возникновении ошибок сборки или развертывания: Не запускать
32
18 марта '10 в 13:11
источник

Перейдите к

  • Инструменты
    • Параметры
      • Debugging
        • Общие

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

25
09 янв. '12 в 7:17
источник

Выберите Отладка в Конфигурация решений, а не Отпустить

screenshot of menu

25
23 янв. '13 в 15:48
источник

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

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

22
18 марта '10 в 14:14
источник

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

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

19
26 нояб. '13 в 0:57
источник

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

Итак, одно исправление заключается в том, чтобы прокомментировать вашу строку charset=utf8 в файле .editorconfig.

16
03 окт. '17 в 18:51
источник

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

7
18 марта '10 в 13:29
источник

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

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

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

7
03 апр. '15 в 16:08
источник

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

5
06 мая '10 в 9:34
источник

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

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

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

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

4
09 апр. '13 в 20:28
источник

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

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

4
19 сент. '11 в 21:31
источник

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

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

Сделайте трюк!

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

3
21 марта '15 в 23:45
источник

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

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

3
30 апр. '12 в 13:18
источник

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

2
19 авг. '13 в 17:50
источник

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

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

2
30 марта '15 в 21:19
источник

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

2
21 нояб. '13 в 17:30
источник

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

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

2
18 марта '14 в 17:18
источник

Что сработало для меня, так это изменить платформу решений от x86 до Any CPU. После перехода на Any, я установил адрес остановки, запустил веб-сайт, открыл страницу, нажал кнопку и остановился. Я закрыл сайт, сменил его на x86 и успешно выполнил ту же последовательность.

2
16 мая '12 в 0:11
источник

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

2
15 мая '13 в 21:55
источник

Убедитесь, что вы не находитесь в режиме Release при попытке отладки.

1
02 нояб. '17 в 13:02
источник

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

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

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

Когда я отключить параметр "Включить только мой код" в меню "Сервис" → "Параметры" → "Отладка" → "Общие"

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

1
17 окт. '14 в 22:24
источник

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

1
17 сент. '14 в 2:29
источник

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

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

1
12 мая '15 в 17:37
источник

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

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

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

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

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

Изменить: во время сборки не было ошибок, несмотря на то, что в настройках IDE включена опция "Приглашение на сборку ошибок".

0
21 окт. '17 в 23:40
источник

Он появился на Visual Studio 2017 после добавления в проект существующих файлов. Это сработало для меня:

  • закрыть решение,
  • перейдите к SolutionFolder\.vs\SolutionName\v15\sqlite3 и удалите storage.ide
  • снова откройте решение.
0
28 сент. '17 в 15:17
источник

Я раньше возился с моим файлом csproj. Поэтому в свойствах проекта (VS 2013) > вкладка "Веб" > раздел "Серверы" > [раскрывающийся список], у меня был выбран "IIS Express", когда я ранее выбрал "Local IIS". Как только я исправил настройки до того, что у меня было раньше, точки останова работали.

0
31 марта '15 в 18:43
источник

В моем случае проблема заключалась в том, что отладка ASP.NET не была включена в свойствах проекта → Веб

0
11 сент. '14 в 9:56
источник
  • 1
  • 2

Посмотрите другие вопросы по меткам или Задайте вопрос