Visual Studio - 一些断点没有破坏

时间:2011-01-18 19:38:39

标签: visual-studio-2010 breakpoints windows-7-x64

我在Visual Studio 2010中有一个解决方案,包含9个项目,这些项目受Source Safe控制。我刚刚刷了我的硬盘并从WinXP x86升级到Win7 x64(早就应该了!)。当我将解决方案检查到“新”机器时,某些部件现在无法正常工作,所以我正在尝试调试它。

也许值得注意的是,我之前在VS2008工作过。当我升级时,我首先在VS2008中打开项目,以确保它工作,我注意到我需要调试的问题。我设置了一些断点,一对夫妇工作,一对夫妇没有。我无法立即弄清楚为什么有些没有破坏,所以我决定继续将项目升级到VS2010,希望它能够自行解决。它没有。

主项目在项目中的公共模块中调用公共子项,该项目是每个其他项目引用的库。我在主窗体Form_Load上有一个断点,一旦代码开始运行就会成功断开。 Form_Load调用前面提到的也有断点的public sub。但那个断点并没有打破。换句话说,调试器将在通话ProjectStartupActions()上停止,但不会在定义Public Sub ProjectStartupActions()或其中的任何一行停止。

如果我在Form_Load中的子调用上“Go To Definition”,它会跳转到我有断点的正确位置,所以我确定我已正确放置了断点。

我的项目>>调试>>对于所有项目,配置设置为“活动(调试)”,平台为“活动(任何CPU)”。为了进一步确认它应该在Debug而不是Release中运行,如果我打开一个资源管理器窗口到库项目的“Debug”文件夹并清理项目,该文件夹将清空。当我重建或运行文件时全部被替换。

感谢您的帮助。

哦是的,我也改变了Public Sub ProjectStartupActions()的代码。我将MsgBox("Hello")添加到sub中的第一行,但它永远不会弹出。

2 个答案:

答案 0 :(得分:2)

  

将目标设置为x86以进行调试。 -   Hans Passant

这很有效!谢谢!!我使用Configuration Manager将整个解决方案的目标更改为x86。

但为什么会这样呢?为什么“任何CPU”选项在主项目中断而不在库中?

答案 1 :(得分:0)

  

哦是的,我也改变了Public Sub ProjectStartupActions()的代码。我将MsgBox("Hello")添加到sub中的第一行,但它永远不会弹出。

听起来您的项目依赖项不正确。确保主窗体项目依赖于具有ProjectStartupActions()功能的库项目(并且不依赖于某些已构建的库装配)。

这应该是这样的,所以VS将在必要时重建库程序集并引用新构建的程序集。

您可能需要进行全面清理/重建才能让事情再次同步。您可能还需要检查和更新您可能拥有的任何部署项目/脚本。