исходный файл отличается от того, когда модуль был построен - PullRequest
98 голосов
/ 21 июня 2010

Это сводит меня с ума.

У меня довольно большой проект, который я пытаюсь изменить. Ранее я заметил, что когда я набрал DbCommand, Visual Studio не делала подсветку синтаксиса, и я использую System.Data.Common.

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

Каждый раз, когда вызывается класс, который не выделил, я получаю сообщение "the source file is different from when the module was built".

Я очистил решение и перестроил его несколько раз, удалил файлы tmp, следуя всем указаниям здесь Получение «Исходный файл отличается от того, когда был построен модуль». , перезапустил веб-сервер и все еще он говорит мне, что исходные файлы отличаются, когда они явно не.

Из-за этого я не могу протестировать код, написанный сегодня.

  • Как источник может отличаться от бинарного, когда я только что выполнил Это?
  • Есть ли способ придать какой-то смысл визуальной студии, или я Я просто что-то упустил?

Ответы [ 26 ]

1 голос
/ 05 июня 2018

Моя проблема заключалась в том, что в моем решении было два проекта. Второй был тестовый проект, используемый для вызова первого. Я выбрал путь к ссылкам из папки выпуска папки bin.

Таким образом, всякий раз, когда я вносил изменения в код первого проекта и перестраивал его, он обновлял dll в папке отладки, но вызывающий проект указывал на папку выпуска, сообщая мне об ошибке, «исходный файл отличается от когда модуль был построен. "

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

1 голос
/ 21 июля 2017

В Visual Studio 2017 удаление скрытой папки .vs в решении этой проблемы для меня.

1 голос
/ 22 июля 2015

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

0 голосов
/ 26 апреля 2018

Проверьте правильность местоположения, на которое вы указали, используя mex () в Matlab (содержит файлы lib и obj, которые были изменены до последней даты, когда вы скомпилировали библиотеку в Visual Studio).

Если это не так:

Убедитесь, что вы компилируете Visual Studio в режиме, который сохраняет файлы .lib:

  1. properties ->Свойства конфигурации -> Общие -> Тип конфигурации -> Статическая библиотека

  2. Свойства -> Свойства конфигурации -> Общие -> Целевое расширение = .lib (вместо exe)

Убедитесь, что выходные и промежуточные каталоги соответствуют каталогу Matlab в

  1. properties -> Свойства конфигурации -> General -> Выходной каталог
  2. properties -> Configсвойства -> Общие -> Промежуточный каталог
0 голосов
/ 18 июля 2017

Debug-> начать без отладки.

Этот вариант работал для меня. Надеюсь, это поможет!

0 голосов
/ 12 октября 2016

В Visual Studio 2015 с использованием C ++ для меня исправлена ​​проблема the source file is different from when the module was built

  • перезапустите Visual Studio.
0 голосов
/ 06 февраля 2015

Моя проблема заключалась в том, что в проекте был веб-сервис, и я изменил путь сборки.

Восстановление пути сборки по умолчанию решило мою проблему.

0 голосов
/ 14 марта 2016

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

Я отлаживал метод из .dll другого из моих проектов, где Visual Studioзагрузил исходный код, потому что .dll был собран на той же машине, и он знал путь к источнику.Очевидно, что изменение такого файла ничего не изменит, если вы не перестроите ссылочный проект.

0 голосов
/ 18 февраля 2016

Я тоже это испытал. Я просто открываю папку obj в проекте и затем открываю папку отладки, удаляю файл .pdb и все.

0 голосов
/ 27 января 2016

Я знаю, что это старый вопрос, но у меня была такая же проблема, и я хотел опубликовать здесь на случай, если это поможет кому-то еще. Я получил новый компьютер, и отдел информационных технологий объединил мой старый компьютер с новым. Когда я настраивал TFS, я сопоставил другой локальный путь с тем, который я использовал ранее, дополнительному внутреннему диску. Старый путь все еще существовал из объединенных данных на моем жестком диске, поэтому я все еще мог строить и запускать. Мои пути IIS также указывали на старый каталог. Как только я обновил IIS по правильному пути, я смог просто отладить. Я также удалил старый каталог для хорошей меры.

...