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

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


当前回答

对我来说,没有一个项目能解决这个问题。我只是在函数中添加了一行新代码,类似于:

int a=0;

通过添加这个,我想我触发了visual studio在原始版本中添加这个功能

其他回答

我遇到了这个问题,这是因为我们的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"/>-->

在我的案例中,是项目/属性/构建选项卡中的错误设置

我有一个主项目引用项目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的输出路径,所以主项目的引用现在会找到正确的版本,现在我的断点再次被击中。

我花了好几个星期才弄明白

帮助我的步骤(VS Community 2017, 15.9.11)。

请注意,执行以下步骤后将丢失断点。

右键单击类文件 选择排除 项目 右键单击该项目 选择“添加和现有文件” 导航到选择相关的类文件

我在VS2019中遇到了这个错误,我认为当Windows的时钟改变时就开始出现这个错误。

确保在csproj中将<Optimize>false</Optimize>设置为false