【问题标题】:Stale Code Warning on Edit and Continue in Visual Studio 2012 Express在 Visual Studio 2012 Express 中编辑和继续时出现过时代码警告
【发布时间】:2016-08-04 13:41:21
【问题描述】:

在我的大多数项目中,在调试模式下,如果我看到一个小错误,我可以在调试期间编辑代码,选择应用代码更改,然后继续。

这通常适用于大多数微小的变化。如果更改过于广泛,则会显示模块内存空间不足,或者如果更改修改了 try-catch 块,则会破坏堆栈展开,因此这些特殊情况需要重建并重新启动。但几乎任何其他东西都可以编辑和继续。

但是对于这个项目,每一个微小的变化,无论多么微不足道,我都会收到一条消息“源文件与构建模块时不同。您是否希望调试器仍然使用它。”如果我选择是,那么我会收到一个警告,说我将要使用过时的代码。

为什么这个项目无法更新源代码以与编辑保持同步并继续更改?我是不是无意中弄乱了项目设置?

更新

我已经尝试了here 提出的所有解决方案,但没有运气。这显然是一个常见的问题,因为关于这个主题的 SO 上和下有很多帖子。不过貌似从来没有人有过可靠的解决方案,显然 VS Edit and Continue 比较有气质。

打开了第二个 VS 实例并加载了我知道编辑和继续工作的先前项目。我重新验证它确实有效。然后我将项目属性并排放置并验证每个开关和设置完全相同。然后我将 VS 选项和设置并排放置,并验证每个设置完全相同。然而,在一个项目中编辑并继续工作,而不是在另一个项目中。

【问题讨论】:

    标签: visual-studio-2012 edit-and-continue


    【解决方案1】:

    显然 edit and continue 与使用 #import 指令链接的 COM 对象不兼容。

    我发现我的项目中只有一个模块在编辑和继续时有过时的代码。该模块使用#import 指令引入了一个ADO COM 对象。

    编写一个快速包装类来封装 COM 内容并将其困在自己的模块中解决了我的问题。

    MSDN 似乎没有在他们的文档中明确说明这一点 https://msdn.microsoft.com/en-us/library/0dbey757%28v=vs.110%29.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-03
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多