在Visual Studio中调试时,有时我添加了一个断点,但它是空心的,VS说“断点目前不会被击中。”源代码与原始版本不同。”显然,这使我无法进行调试。
这条消息到底是什么意思?什么原始版本?如果我只是打开了解决方案,而没有对代码做任何更改,又怎么会有“原始版本”呢?
在Visual Studio中调试时,有时我添加了一个断点,但它是空心的,VS说“断点目前不会被击中。”源代码与原始版本不同。”显然,这使我无法进行调试。
这条消息到底是什么意思?什么原始版本?如果我只是打开了解决方案,而没有对代码做任何更改,又怎么会有“原始版本”呢?
当前回答
首先,我尝试从命令行;
从命令行删除临时文件确实有效。
C:\Windows\ Microsoft.NET \ Framework64 \ v4.0.30319 \临时ASP。>rd /s root . NET文件
当我在工具->选项->调试->通用中禁用“启用只是我的代码”选项时
这个问题为我解决了。这是一个WCF应用程序,试图调试一个ashx页面。 http://blogs.msdn.com/b/zainnab/archive/2010/10/25/understanding-just-my-code.aspx
其他回答
它工作得很好-你必须在复选框“启用只是我的代码”中设置为未选中,如下图所示:
对于一个类似的问题,我做了如下处理:
取消选中Debug -> option -> General菜单中的“Enable Just My Code”选项
我在vs2017的32位版本中遇到过这种情况。
没有一个解决方案对我有效。我重新启动,我清除IDE文件,清洁构建的解决方案,从git回购和重建解决方案无效。
我从nuget中提取了一个64位依赖项,一旦我使用了程序集,源就不再被构建到最终的可执行文件中,而是构建了IDE缓存的源。
我删除了nuget配置,删除了引用的程序集,下载了源代码,手动构建log4net,对其进行了签名,将其添加到我的项目中的一个文件夹中,并对其添加了引用,然后我就可以再次进行调试了。
这是一个痛苦,我希望它能出现在答案列表中,让所有人都看到。
编辑:在构建过程中没有错误,尽管在IDE设置中打开了“构建错误提示”选项。
对我来说,没有一个项目能解决这个问题。我只是在函数中添加了一行新代码,类似于:
int a=0;
通过添加这个,我想我触发了visual studio在原始版本中添加这个功能
在我的案例中,是项目/属性/构建选项卡中的错误设置
我有一个主项目引用项目xxx.dll 引用dll中的断点未被命中。
对dll的引用被设置为库文件夹中的bin\debug\xxx.dll
因此,当我调试主项目时,它会到库的bin\debug文件夹中寻找xxx.dll。
但是,在库的属性中,由于一些黑暗的原因,输出路径被设置为bin\x86\debug而不是bin\debug
因此,库的每次构建都将新的dll放在bin\x86\debug文件夹中,而不是在bin\debug中
所以VS在调试的时候总是找到一个旧的库的dll,因此错误是正确的,有一个不同的源。
所以我修正了从库到bin\debug的输出路径,所以主项目的引用现在会找到正确的版本,现在我的断点再次被击中。
我花了好几个星期才弄明白