【问题标题】:breakpoint isn't hit when running 2 instances of the same project on VS2013在 VS2013 上运行同一项目的 2 个实例时未命中断点
【发布时间】:2015-05-27 13:32:53
【问题描述】:

我创建了同一个项目的 2 个实例来应用不同的更改。因此,当我打开 project1 并调试 class1 时,一切都很顺利,我可以让我的断点命中所有其他调试功能。 当我打开 project2 并关闭 project1 时,我尝试在 class1 上进行相同的调试(代码的某些行不同),我收到警告

“断点当前不会命中。在project1.dal.dll中找到了class1.cs的副本,但当前源代码与那个版本不同”

当我完全关闭 VS 并重新打开项目时,或者如果我清除了 ASP.NET 临时文件,问题就会得到解决。但它每次都发生在我身上。所以我的问题是;

1) 我想知道为什么会这样,在不关闭 VS 或清除缓存文件的情况下如何解决?

2) 我知道名为“取消选中要求源文件与原始版本完全匹配”的选项。这样做安全吗?或者有什么副作用或缺点

【问题讨论】:

  • 为什么需要同一个类的两个版本?
  • 这不是同一个类,而是整个项目,因为我正在访问 2 个不同的数据库来比较性能。正如我所说的业务逻辑,我也改变了其中一个来进行比较。我本可以使用单元测试等来做不同的事情,但这是达到我的目的的最快方法。
  • @artm 例如发生的事情如下。我正在调试 2 个版本的 nopcommerce 以查看一些差异。我打开了 3.5 和 3.6 版本,但我只启动了 3.6 版本,有趣的是在浏览器上显示的是 3.5 版本(设计完全不同)。虽然我什至没有开始调试 3.5 源代码。

标签: c# visual-studio-2013 visual-studio-debugging


【解决方案1】:

以这种方式调试您的代码是不可能的 - 您为每个构建创建不同的符号,因此当您调试一个版本时,另一个与前一个版本不兼容。

长话短说 - 当加载来自另一个版本的符号时,您无法调试一个版本的代码。

更多信息:Fixing "The breakpoint will not currently be hit. No symbols have been loaded for this document."

编辑:

也请查看此链接:What is the "Temporary ASP.NET Files" folder for?

【讨论】:

  • 我忘了提到他们不共享相同的类库项目。它们也具有相同的名称但不同的源代码。不是在网站项目的 BIN 文件夹下重新生成或更新构建时 DLL 吗?除非临时缓存文件夹中有内容,否则它们为什么会相互影响?
  • @batmaci - 嗯,你能与项目结构共享屏幕吗?当然,DLLa 会在构建后重新生成,但每次您想附加调试器时都必须重新构建项目 - 即使您没有进行任何更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
相关资源
最近更新 更多