在Visual Studio 2012 Express中编辑和继续时出现过时代码警告

时间:2016-08-04 13:41:22

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

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

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

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

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

source out of date warning stale code warning

更新

我尝试了here提出的所有解决方案,但没有运气。这显然是一个常见的问题,因为关于这个主题有很多关于SO的帖子。但看起来似乎没有人有过可靠的解决方案,显然VS编辑和继续是非常有气质的。

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

1 个答案:

答案 0 :(得分:0)

显然编辑和继续与使用#import指令链接的COM对象不兼容。

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

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

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