Отладка приложения x86 .NET в Windows x64 в VS2008 - PullRequest
5 голосов
/ 06 января 2010

Я использую 64-разрядную версию Windows 7. Мое приложение использует некоторые COM-серверы (обычные собственные x86-серверы x86), которые не могут быть загружены в контексте x64.Поэтому я решил запустить его как приложение x86, используя WOW , поэтому я установил целевую платформу как x86.

Но отладчик Visual Studio 2008 начал показывать сообщения типа «Исходный файл отличается .... "для всех исходных файлов, когда я пытаюсь отладить его.В чем причина такого поведения?Этот вопрос родился там Сообщение «Исходный файл отличается ...» в Visual Studio 2008 является результатом отладки приложений x32 в 64-разрядной Windows

Обновление :Я очистил решение, перестроил решение, удалил папки obj, bin и т. Д., Перезапустил компьютер, переустановил Visual Studio ... Итак, в чем еще проблема?

Обновление2 : Если высоздайте новый проект Windows Application и измените целевую платформу на x86, вы увидите эту проблему.Но , если вы удалите Settings1.settings из проекта, проблема будет устранена !! .Любая идея?

Обновление3 : http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/bc297668-65b4-46e8-969e-c7a6340d33b6

Ответы [ 3 ]

4 голосов
/ 18 января 2010

Windows 7 по умолчанию устанавливает режим совместимости Windows Xp sp 3 для VS 2008. Изменение совместимости с режимом Windows Vista SP2 решило проблему.

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

Полученное вами сообщение об ошибке не связано с отладкой приложения WOW64 bit. Это даже менее проблематично, поскольку Visual Studio выполняет 32-битный процесс внутри WOW64. Таким образом, вместо x64 -> x86 вы фактически делаете сеанс отладки x86 -> x86.

Здесь происходит то, что Visual Studio считывает контрольную сумму исходных файлов из PDB и не совпадает с контрольной суммой файлов, которые вы используете для отладки приложения. Наиболее вероятные причины этого

  • Устаревшие PDB
  • Использование неверных исходных файлов. Это чаще, чем вы думаете, в сценариях ветвления, где вы можете легко получить неправильную версию файла.

Обычно я отлаживаю через это

  • Закрыть VS и вручную удалить все двоичные файлы и двоичные каталоги
  • Перезагрузите VS и восстановите
  • Закрыть VS
  • Перезапустите VS и подключитесь к работающему проекту, не открывая решение
  • Затем вручную откройте файлы
1 голос
/ 06 января 2010

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

Откройте Свойства решения и откройте страницу Свойства конфигурации \ Конфигурация . Затем убедитесь, что все проекты отмечены в Build для используемой вами комбинации Config / Platform.

...