在Visual Studio中调试时,有时我添加了一个断点,但它是空心的,VS说“断点目前不会被击中。”源代码与原始版本不同。”显然,这使我无法进行调试。
这条消息到底是什么意思?什么原始版本?如果我只是打开了解决方案,而没有对代码做任何更改,又怎么会有“原始版本”呢?
在Visual Studio中调试时,有时我添加了一个断点,但它是空心的,VS说“断点目前不会被击中。”源代码与原始版本不同。”显然,这使我无法进行调试。
这条消息到底是什么意思?什么原始版本?如果我只是打开了解决方案,而没有对代码做任何更改,又怎么会有“原始版本”呢?
当前回答
在我将现有文件添加到项目后,它碰巧在Visual Studio 2017上。这招对我很管用:
关闭溶液, 转到SolutionFolder\。vs\SolutionName\v15\sqlite3,删除storage.ide 再次打开解决方案
其他回答
我在vs2017的32位版本中遇到过这种情况。
没有一个解决方案对我有效。我重新启动,我清除IDE文件,清洁构建的解决方案,从git回购和重建解决方案无效。
我从nuget中提取了一个64位依赖项,一旦我使用了程序集,源就不再被构建到最终的可执行文件中,而是构建了IDE缓存的源。
我删除了nuget配置,删除了引用的程序集,下载了源代码,手动构建log4net,对其进行了签名,将其添加到我的项目中的一个文件夹中,并对其添加了引用,然后我就可以再次进行调试了。
这是一个痛苦,我希望它能出现在答案列表中,让所有人都看到。
编辑:在构建过程中没有错误,尽管在IDE设置中打开了“构建错误提示”选项。
我也遇到过这种情况。导致我的问题的条件:
我正在本地运行一个完整的IIS7实例 我正在把我的软件分成不同的项目
我打开以前的版本导致了这个问题(VS提示问我是否想在IIS调试中指向这个实例,我回答'是'),然后打开当前版本(再次响应IIS提示'是'),然后尝试在以前的版本中调试。
为了解决这个问题,我只是关闭并重新打开了之前的预期版本,再次将其断言为调试源。
对我来说,没有一个项目能解决这个问题。我只是在函数中添加了一行新代码,类似于:
int a=0;
通过添加这个,我想我触发了visual studio在原始版本中添加这个功能
如果您在调试构建配置中未选中DLL项目,那么您的新代码将永远无法构建!
转到构建—>配置管理器…(在VS2010中),并检查您正在尝试调试的代码的项目是否为当前构建配置进行了检查。
我只是重新装填,清理和重建我的作品。