在Visual Studio中调试时,有时我添加了一个断点,但它是空心的,VS说“断点目前不会被击中。”源代码与原始版本不同。”显然,这使我无法进行调试。
这条消息到底是什么意思?什么原始版本?如果我只是打开了解决方案,而没有对代码做任何更改,又怎么会有“原始版本”呢?
在Visual Studio中调试时,有时我添加了一个断点,但它是空心的,VS说“断点目前不会被击中。”源代码与原始版本不同。”显然,这使我无法进行调试。
这条消息到底是什么意思?什么原始版本?如果我只是打开了解决方案,而没有对代码做任何更改,又怎么会有“原始版本”呢?
当前回答
在Windows 7、Visual Studio Express 2010下,如果已激活选项“为Windows XP SP3使用兼容性模式”,则可能会出现此错误。
我取消了这个选项,它再次完美地工作了。右键单击VS或可执行文件的快捷方式,选择属性,然后选择兼容性。
其他回答
当调试期间或调试会话之间的系统时间发生变化时,可能会发生这种情况,无论是通过编程方式、手动方式还是通过外部程序。
至:
Tools > Options > Debugging > General > unchecked "要求源 文件与原始版本完全匹配”
注意vs中的“Output”窗口,它会告诉你加载了哪些程序集以及何时加载。您可能会看到正在加载文件夹中某个位置的程序集的旧版本。
例如,如果您有多个程序集,并且当前正在尝试插入其中一个支持程序集,CLR将处理程序集解析,这可能会加载您在项目中引用的程序集文件以外的另一个程序集文件。
对我有用的是将解决方案平台从x86改为Any CPU。在更改为Any后,我设置了一个停止地址,运行网站,打开页面,点击按钮,它就停止了。我关闭了网站,改回x86并成功地执行了相同的顺序。
I suffered from this recently, and in my case I traced the problem back to something I was doing when testing: changing the system time. I'm not suggesting this is the case for everyone, but thought I'd mention it since it hasn't been mentioned already. It appears if you start moving the clock around between debug builds then it can get very confused about what order various files have been created it - I can only assume it is using file modified dates to determine if the source code is valid or not, and which binaries it needs to recompile.
这也是一个重新保存网页的选项。配置以碰撞其修改时间。