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

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


当前回答

在我的例子中,其他建议都不起作用,但是重新克隆我的存储库使这个问题消失了。

其他回答

尽管所有的答案,我的问题实际上不同于这里提到的!

确保您的属性->构建选项卡->输出路径指向与您所选择的构建配置的解决方案中所有其他项目相同的位置!

如果你的启动项目将它的可执行文件从你试图调试的dll发送到不同的文件夹,你可能会遇到问题,尽管你的构建和visual studio工作完美。

对于VS Code用户:

如果在尝试调试ASP . net Core应用程序时遇到此问题,请确保在tasks中定义构建任务。json,并且您可以在调试控制台窗格中看到其输出,则成功运行。

在启动中定义的调试配置。引用此任务的Json将出于某种原因(至少在某些情况下)继续执行定义的二进制文件,即使构建任务失败,并且由于构建任务失败,该二进制文件将成为最后一个成功构建的程序集。

有时您只需要将解决方案配置从“发布”更改为“调试”。

我在使用本地IIS而不是IIS express时遇到了这个问题。IIS中的文件源确实与Visual Studio中的文件源相匹配,但是,我不得不在IIS中回收应用程序池,以便让它使用新构建的dll。

我刚刚重启电脑,它为我工作得很好。