Сообщение «Исходный файл отличается ...» в Visual Studio 2008 является результатом отладки приложений x32 в Windows x64 - PullRequest
0 голосов
/ 06 января 2010

Я пишу провайдеру ADO.NET. Для отладки я использую метод класса DbProviderFactories.GetFactory. Этот метод создает мой унаследованный класс DbProviderFactory, который я использую для создания наследника DbConnection моего провайдера и т. Д. Когда я пытаюсь установить точку останова в своем коде провайдера, я вижу, что это не работает - выполнение не останавливается. Когда я выбрасываю исключение в своем коде, VS2008 показывал окно с сообщением «Исходный файл другой ...». Отладка работает хорошо до позавчерашнего дня, но не сейчас. Кто-нибудь знает "волшебный флажок" для решения моей проблемы? Есть идеи?

Update1 : сборка провайдера добавляется в GAC на этапе после сборки. Компилятор не нашел ошибок в решении. Обновление2 : Исходный код статических сборок со ссылками тоже "другой".

Update3 и последний : Я нашел источник проблемы. Я использую 64-разрядную версию Windows 7. Мое приложение использует некоторые COM-серверы (обычные собственные x32 COM-серверы), которые не могут быть загружены в контексте x64 . Поэтому я решил запустить его как приложение x32, используя WOW, поэтому я установил целевую платформу как x32. Но отладчик начал показывать сообщения типа «Исходный файл другой ....». Я не понимаю, почему это работает как работает. Я напишу в службу поддержки Microsoft.

Ответы [ 4 ]

1 голос
/ 14 августа 2012

Если вы используете Visual Studio Express, у вас, вероятно, нет Build-> Clean Solution.

Попробуйте удалить файл отладки pdb, находящийся в C: \ Users \ имя_руза \ Documents \ Visual Studio 2010 \ Projects \ yourproject \ yournamespace \ bin \ Debug.

Если вы боитесь полностью удалить файл, я бы переместил его во временную папку.

Затем попробуйте Debug-> Start Debugging (F5)

Удачного кодирования!

1 голос
/ 06 января 2010

Вы можете сказать ему, чтобы он игнорировал проблему, перейдя в Инструменты, Параметры, перейдя в раздел Отладчик и сняв отметку Require source files to exactly match the original version.

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

РЕДАКТИРОВАТЬ : Попробуйте удалить провайдера из GAC (вручную или в начале шага после сборки)

1 голос
/ 11 января 2010

Сообщение «Исходный файл отличается…» в Visual Studio 2008 является результатом отладки приложений x32 в Windows x64.Смотрите новую тему

0 голосов
/ 06 января 2010

Попробуйте выполнить чистку (Построить-> Чистое решение), а затем пересобрать все (Перестроить решение).

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