在Visual Studio中调试时,有时我添加了一个断点,但它是空心的,VS说“断点目前不会被击中。”源代码与原始版本不同。”显然,这使我无法进行调试。
这条消息到底是什么意思?什么原始版本?如果我只是打开了解决方案,而没有对代码做任何更改,又怎么会有“原始版本”呢?
在Visual Studio中调试时,有时我添加了一个断点,但它是空心的,VS说“断点目前不会被击中。”源代码与原始版本不同。”显然,这使我无法进行调试。
这条消息到底是什么意思?什么原始版本?如果我只是打开了解决方案,而没有对代码做任何更改,又怎么会有“原始版本”呢?
当前回答
在我的例子中,我在VS 2012中附加了一个正在运行的进程。当附加时,你可以选择以各种模式(本机、脚本、silverlight、托管2.0、托管4.0等)进行调试。默认情况下,调试器自动选择模式。然而,自动并不总是做出正确的选择。如果进程包含多种类型的代码,请确保调试器使用的是正确的代码。
其他回答
对于VS Code用户:
如果在尝试调试ASP . net Core应用程序时遇到此问题,请确保在tasks中定义构建任务。json,并且您可以在调试控制台窗格中看到其输出,则成功运行。
在启动中定义的调试配置。引用此任务的Json将出于某种原因(至少在某些情况下)继续执行定义的二进制文件,即使构建任务失败,并且由于构建任务失败,该二进制文件将成为最后一个成功构建的程序集。
在尝试调试时,请确保您没有处于发布模式。
我遇到了这个问题,这是因为我们的DevOps团队要求Azure云设置。在开发时,只需将其从Web.config中删除。
<httpRuntime maxRequestLength="102400" />
<!--TODO #5 comment out for IIS Express fcnMode goes with httpRunTime above in other environment just in DEV -->
<!--fcnMode="Disabled"/>-->
对我来说,解决方案隐藏在项目属性的高级构建设置中:
由于未知的原因,它被设置为none:将其设置为full会导致命中断点。
要进入此对话框,请打开项目属性,然后转到构建,然后选择高级…按钮在页面底部。
我已经试过提出的解决办法了,但不管用。
如果您有多个项目,请将要调试的项目作为启动项目。