Исходный файл отличается от того, когда был создан модуль
Это сводит меня с ума.
У меня есть довольно большой проект, который я пытаюсь изменить. Я заметил ранее, что когда я набрал DbCommand
, визуальная студия не выделяла подсветку синтаксиса, и я использую System.Data.Common
.
Несмотря на то, что ничего не было выделено, в моем браузере проект работал нормально. Поэтому я решил запустить отладчик, чтобы убедиться, что все работает так, как должно быть.
Каждый раз, когда класс, который не выполняет выделение, называется я получаю сообщение "the source file is different from when the module was built"
.
Я очистил решение и несколько раз перестроил его, удалил tmp файлы, следуя всем направлениям Получение "Исходный файл отличается от того, когда был построен модуль." , перезапустил веб-сервер, и все же он говорит мне, что исходные файлы отличаются, когда они явно не являются.
Я не могу проверить какой-либо из кода, который я написал сегодня из-за этого.
- Как источник может отличаться от двоичного, когда я просто выполнял
Это?
- Есть ли способ сбить какой-то смысл в визуальную студию или
Я что-то пропустил?
Ответы
Ответ 1
У меня возникла проблема с консольным приложением, где источник, который был другим, был источником, который имел точку входа (static void Main). Удаление каталогов bin и obj и полная перестройка, похоже, исправили это, но каждый раз, когда я делал изменение кода, он снова устарел.
Я нашел для этого следующее:
- Я проверил "Только создавать проекты запуска и зависимости от Run" (Инструменты → Параметры → Проекты и решения → Сборка и запуск)
- В Configuration Manager у моего проекта запуска не было отмечено "Build"
(для # 2 → доступно через панель инструментов в раскрывающемся списке "Отладка/выпуск".)
Ответ 2
У меня была такая же проблема, мои проекты были в одном решении, поэтому они использовали ссылки Project to Project, так как одна из них изменилась, остальные должны были быть обновлены. Однако это было не так, я попытался построить, перестроить, закрыть VS2010, вытащил новую копию из нашего источника управления. Ничего из этого не получилось, что я, наконец, пытался попробовать, это щелкнуть правой кнопкой мыши по проекту и перестроить каждый проект по отдельности. Это обновило файлы .dlls и .pdb, чтобы я мог отлаживать.
Проблема здесь в том, что ваши dll и ваши файлы pdb не синхронизированы.
Ответ 3
Выполните следующие действия.
- Просто удалите каталог bin из проекта, в котором создается DLL.
- Восстановите проект.
- Удалить ссылку из проекта, ссылающегося на DLL.
- Включить снова ссылку.
- Наслаждайтесь.
Ответ 4
Некоторые вещи для вас, чтобы проверить:
Вы дважды проверили ссылки на проекты?
У вас есть запущенный веб-сервер Visual Studio, который еще работает? Проверьте системный трей и найдите страницу со значком шестеренки (у вас может быть несколько):
![alt text]()
(источник: msdn.com)
Щелкните правой кнопкой мыши и закройте/выйдите из него. Вы можете иметь более одного. Можете ли вы отладить свои изменения сейчас?
Вы используете отладочную версию, но создали только версию выпуска (или наоборот)?
Компиляция действительно удалась? Я знаю, что нажал на "были ошибки, вы все равно хотите продолжить?" сообщение пару раз не осознавая.
Ответ 5
В дополнение к этим ответам у меня возникла та же проблема при замене новых библиотек DLL на старые из-за неправильного пути. Если вы все еще получаете эту ошибку, вы можете не указывать неправильный путь для DLL. Перейдите в диспетчер IIS и щелкните веб-сайт, который использует ваши библиотеки DLL. В правом окне щелкните "Дополнительные параметры" и перейдите к пути к папке "Физический путь" в проводнике файлов и убедитесь, что вы используете эту папку для замены своих библиотек DLL.
Ответ 6
С помощью веб-служб проблема может быть вызвана использованием команды Visual Studio "Просмотр в браузере". Это помещает файлы DLL службы и PDB в папки bin и obj. При входе в веб-службу от клиента, как-то Visual Studio использует PDB в папке bin (или obj), но использует DLL в папке вывода вывода проекта. Есть несколько способов:
- Попробуйте удалить файлы DLL и PDB в корзине веб-сервиса и файлах obj.
- Попробуйте нажать "Просмотр в браузере" в Visual Studio.
Если вы ранее получили ошибку несоответствия исходного файла, Visual Studio, возможно, добавила имя файла в черный список. Проверьте свойства решения. Выберите "Общие свойства → Отладка исходных файлов" в левой части диалогового окна. Если исходные файлы веб-службы отображаются в поле "Не искать эти исходные файлы", удалите их.
Ответ 7
У меня была эта проблема.
Я пробовал все выше, но только это сработало:
- удалите файл .pdb для решения.
- удалить оскорбительные файлы .obj(для файла, который не синхронизирован)
создайте решение.
Это фиксировало проблему для всех движений для меня.
Ответ 8
Вот как я исправил проблему в Visual Studio 2010:
1) Измените параметр "Конфигурации решений" с "Отладка" на "Отпустить"
2) Начать отладку
3) Остановить отладку и переключить опцию "Конфигурации решений" обратно в "Отладка"
Это сработало для меня. Шаг 3 является необязательным - он отлично работал, когда я изменил его на "Release", но я хотел его изменить.
Ответ 9
Мое решение:
Я включил существующий проект из другого решения в новый файл решения.
Я не заметил, что когда существующий проект был перестроен, он помещал окончательный вывод в выходной каталог NEW. У меня был путь компоновщика, определенный для поиска в каталоге вывода OLD.
Переключение моего проекта на поиск в выходном каталоге нового решения устраняет эту проблему для меня.
Ответ 10
У меня была эта проблема, и оказалось, что я запускаю консольное приложение в качестве приложения Windows. Исправлена проблема переключения типа вывода на консоль.
Ответ 11
У меня была та же проблема. Чтобы исправить это, я использовал "Режим выпуска" для отладки в VS2013. Этого достаточно для меня, потому что я работаю над аддоном node js\С++.
Ответ 12
Выгрузите проект с файлом, который вызывает ошибку.
Перезагрузите проект.
Фиксированный
Ответ 13
В Visual Studio 2017 удаление скрытой папки .vs в разрешенной для меня проблеме.
Ответ 14
Моя проблема заключалась в том, что у меня было два проекта в моем решении. Второй был тестовый проект, используемый для вызова первого. Я выбрал путь к ссылкам из папки выпуска папки bin.
Поэтому всякий раз, когда я вносил изменения в первый код проекта и перестраивал его, он обновлял dll в папке отладки, но вызывающий проект указывал на папку релиза, сообщая мне об ошибке: "исходный файл отличается от того, когда модуль был построен."
Как только я удалил ссылку на основной dll проекта в папке релиза и установил ее в dll в папке отладки, проблема исчезла.
Ответ 15
решение: -
проблема в:-
если ваши некоторые проекты в решении, обратитесь к некоторым другим проектам,
то иногда dll некоторых проектов, не будет обновляться автоматически, всякий раз, когда вы строите решение,
некоторые проекты будут иметь предыдущие DLL сборки, а не последние dll
вам нужно перейти вручную и скопировать dll проекта последней сборки в проект, на который ссылается
Ответ 16
Я использовал Visual Studio 2013, и у меня был существующий проект под контролем источника.
Я загрузил новую копию из исходного элемента управления в новый каталог.
После внесения изменений в новую копию, при создании я получил ошибку.
Мое решение:
1) Открыть Documents\IISExpress\config\applicationhost.config
2) Обновите virtualDirectory
node с помощью каталога в новую копию и сохраните.
Ответ 17
Моя проблема заключалась в том, что у меня был веб-сервис в проекте, и я изменил путь сборки.
Восстановление пути сборки по умолчанию разрешило мою проблему.
Ответ 18
У меня была такая же проблема, и я следил за большинством рекомендаций в других ответах, размещенных здесь, для меня ничего не работало.
В итоге я открыл IIS и переработал пул приложений для своего веб-приложения. У меня есть версия IIS 8.5.9600, я щелкнул правой кнопкой мыши мое веб-приложение, а затем: Deploy > Recycle > Recycle pool pool > OK.
Кажется, что он исправил это, точки останова теперь попадают, как ожидалось. Я думаю, что делать это вместе с удалением папок bin и obj помогло мне в этом.
Удачи!
Ответ 19
Я знаю, что это старый вопрос, но у меня была такая же проблема, и я хотел опубликовать здесь, если это поможет кому-то другому. У меня появился новый компьютер, и ИТ-отдел объединил мой старый компьютер с новым. Когда я настраивал TFS, я сопоставил другой локальный путь, чем тот, который я использовал ранее, на дополнительный внутренний диск. Старый путь все еще существовал из объединенных данных на моем жестком диске, поэтому я все еще мог создавать и запускать. Мои пути IIS также указывали на старый каталог. Как только я обновил IIS до правильного пути, я смог отлаживать все отлично. Я также удалил старый каталог для хорошей меры.
Ответ 20
Я также испытал это. Я просто открываю папку obj в проекте, а затем открываю папку отладки, удаляю файл .pdb и все это.
Ответ 21
Эта ошибка также возникает, если вы пытаетесь внести изменения в исходный файл, который не является частью проекта.
Я отлаживал метод из .dll другого одного из моих проектов, где Visual Studio довольно хорошо загрузил источник, потому что DLL был построен на той же машине, и он знал путь к источнику. Очевидно, что изменение такого файла ничего не сделает, если вы не восстановите ссылочный проект.
Ответ 22
- Удалить все точки останова.
- Перестроить.
- Готово
Ответ 23
В Visual Studio 2015 с использованием С++ для меня проблема the source file is different from when the module was built
заключалась в
- перезапустить Visual Studio.
Ответ 24
Отладка- > запуск без отладки.
Этот вариант работал у меня. Надеюсь, это поможет!
Ответ 25
Проверьте правильность местоположения, на которое вы указали, используя mex() в Matlab (содержит файлы lib и obj, которые были изменены до последней даты, когда вы скомпилировали библиотеку в Visual studio).
Если это не так:
Убедитесь, что вы компилируете Visual studio в режиме, который сохраняет файлы .lib:
-
свойства → свойства конфигурации → общие сведения → тип конфигурации → статическая библиотека
-
Свойства → Свойства конфигурации → Общие → Целевое расширение =.lib (вместо exe)
Убедитесь, что выходные и промежуточные каталоги соответствуют каталогу Matlab в
- свойства → свойства конфигурации → общие → выходной каталог
- свойства → Свойства конфигурации → Общие → Промежуточный каталог
Ответ 26
В моем случае ответ @Eliott не работает. Для решения этой проблемы мне пришлось исключить/включить из проекта мой дефектный файл, а также очистить и перестроить решение.
После этих действий мой файл с моими последними изменениями и отладчиком восстанавливаются.
Я надеюсь, что это поможет.
Ответ 27
Я получаю эту проблему при отладке иногда с Visual Studio, но когда приложение обслуживается IIS. (Мы должны разрабатывать в этой форме по некоторым сложным причинам, связанным с тем, как первоначальный разработчик настроил этот проект.)
Когда я изменяю файл и перестраиваюсь, это часто исправляет его. Я знаю, что это звучит глупо, но я просто пытался отладить некоторый код, чтобы понять, почему он делает что-то странное, когда я не менял его в течение некоторого времени, и я пробовал дюжину вещей с этой страницы, но это было исправлено, просто изменив файл..
Ответ 28
У меня такая же проблема, и я решаю ее, перестроив все эталонные проекты.