在VS2008中的Windows x64上调试x86 .NET应用程序
我使用x64版本的Windows 7.我的应用程序使用一些无法在x64上下文中加载的COM服务器(通常是本机x86 COM服务器)。 所以我决定使用WOW将其作为x86应用程序运行,因此我将平台目标设置为x86。
但是当我尝试调试它时,Visual Studio 2008调试器开始显示所有源文件的“源文件不同……”之类的消息。 这种行为的原因是什么? 这个问题诞生于那里“源文件不同……”消息在Visual Studio 2008中是在x64 Windows上调试x32应用程序的结果
更新 :我清理解决方案,重建解决方案,删除obj,bin等文件夹,重新启动计算机,重新安装Visual Studio …那么,还有什么可能是问题?
Update2 :如果您创建新的Windows应用程序项目并将目标平台更改为x86,您将看到此问题。 但如果从项目中删除Settings1.settings,麻烦将被消除! 。 任何的想法?
Update3 : http : //social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/bc297668-65b4-46e8-969e-c7a6340d33b6
您获得的错误消息与调试WOW64位应用程序无关。 这甚至不是问题,因为Visual Studio在WOW64中运行32位进程。 因此,您实际上在进行x86 – > x86调试会话,而不是x64 – > x86。
这里发生的是Visual Studio正在从PDB读取源文件的校验和,它与用于调试应用程序的文件的校验和不匹配。 最可能的原因是
- 过时的PDB
- 使用不正确的源文件。 这比您在分支方案中更常见,您可以轻松获取错误的文件版本。
我通常通过这种方式调试的方式是
- 关闭VS并手动删除所有二进制文件和二进制目录
- 重启VS并重建
- 关闭VS.
- 重新启动VS并附加到正在运行的项目而不打开解决方案
- 然后手动打开文件
Windows 7默认为VS 2008设置Windows Xp sp 3兼容模式。 更改与Windows Vista SP2模式的兼容性已经解决了问题。
您还可以检查x86构建类型。 创建它时,您可能无法从默认构建中复制设置,因此在运行应用程序时,您的代码都没有构建。
打开“ 解决方案属性”并检查“ 配置属性\配置”页面。 然后确保在Build for the Config / Platform组合下检查所有项目。