【问题标题】:Breakpoint will not currently be hit because source code is different in razor code断点当前不会被命中,因为 razor 代码中的源代码不同
【发布时间】:2015-06-23 03:29:19
【问题描述】:

这是我在剃刀代码中遇到断点的错误消息:

在 App_Web_cmi1k1de.dll 中找到 index.cshtml 的副本(服务器端 符号),但源代码与内置的版本不同 App_Web_cmi1k1de.dll(服务器端符号)。允许断点 当来源不同时被击中 blah blah blah...

我收到一条非常相似的错误消息,我在解决方案中转到配置管理器,发现一个项目未设置为“调试”。我将其更改为调试,清除 C:\Users\me\AppData\Local\Temp\Temporary ASP.NET Files\root\932eeb02\b9cdc481\ 中的所有内容,并重建我的解决方案。我看到现在在这个文件夹中我看到了一个

C:\Users\me\AppData\Local\Temp\Temporary ASP.NET Files\root\932eeb02\b9cdc481\App_Web_cmi1k1de.dll

和一个

C:\Users\me\AppData\Local\Temp\Temporary ASP.NET Files\root\932eeb02\b9cdc481\App_Web_cmi1k1de.pdb

这两个文件具有相同的时间戳,从第二个开始。知道为什么我会收到此错误吗?源代码与编译后的 .dll 不同是没有任何意义的。

【问题讨论】:

  • 如果您在开始调试之前重新构建解决方案,您将不会收到该消息,并且如果代码到达那里,断点最终会被命中
  • 当我遇到这种类型的问题时,它要么是完全不相关的问题,例如其他地方的编译错误或错误的参考或其他什么,要么它只是其中一个在之后自行消失的问题重新启动。我从来没有找到一个好的答案。
  • 重建并删除asp.net临时文件夹的内容..
  • 我不确定我是否在原始帖子中说清楚了,但我清除了我重建的临时 asp.net 文件,但仍然出现错误。我确实发现,如果我右键单击剃刀视图中的断点并选择允许源代码不同,我会遇到断点并且我的变量等看起来很正常。
  • 请从输出路径中删除所有文件,对于 ASP MVC,它应该是 `\bin`,然后重建解决方案。

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

停止调试,检查 IIS(或 IISExpress)进程是否不再运行 - 如果需要,停止它,在 Visual Studio 中右键单击解决方案 Clean,然后重新构建。再次尝试调试。

【讨论】:

    【解决方案2】:

    Visual Studio 在你的视图文件上,右击属性,复制到输出目录:Copy if newerCopy Always

    【讨论】:

      【解决方案3】:

      以上都不适合我。重新启动 VS 也不起作用。原来与我最近对另一个文件所做的更改有关。即使这符合要求,但当我撤消更改时,错误消失了。

      【讨论】:

        猜你喜欢
        • 2011-10-23
        • 1970-01-01
        • 2016-10-15
        • 2011-01-28
        • 1970-01-01
        • 2013-02-18
        • 2023-04-05
        • 2015-03-27
        • 1970-01-01
        相关资源
        最近更新 更多