在Visual Studio中调试时,有时我添加了一个断点,但它是空心的,VS说“断点目前不会被击中。”源代码与原始版本不同。”显然,这使我无法进行调试。

这条消息到底是什么意思?什么原始版本?如果我只是打开了解决方案,而没有对代码做任何更改,又怎么会有“原始版本”呢?


当前回答

在我的案例中,问题在于ASP。在项目属性>>Web下未启用NET调试

其他回答

我也遇到过这种情况。导致我的问题的条件:

我正在本地运行一个完整的IIS7实例 我正在把我的软件分成不同的项目

我打开以前的版本导致了这个问题(VS提示问我是否想在IIS调试中指向这个实例,我回答'是'),然后打开当前版本(再次响应IIS提示'是'),然后尝试在以前的版本中调试。

为了解决这个问题,我只是关闭并重新打开了之前的预期版本,再次将其断言为调试源。

对于一个类似的问题,我做了如下处理:

取消选中Debug -> option -> General菜单中的“Enable Just My Code”选项

工具 选项 调试 一般

取消选中“要求源文件与原始版本完全匹配”

在我的例子中,我被分配了大约120kb的base64值给静态类中的静态约束字符串字段。之后出现了这个问题。我尝试了很多解决方案,但问题没有解决,直到我把这个沉重的任务。

我的环境: MS VS Community 2017 版本15.9.16

在我将现有文件添加到项目后,它碰巧在Visual Studio 2017上。这招对我很管用:

关闭溶液, 转到SolutionFolder\。vs\SolutionName\v15\sqlite3,删除storage.ide 再次打开解决方案