在我的大多数项目中,在调试模式下,如果我看到一个小错误,我可以在调试期间编辑代码,选择应用代码更改,然后继续。
这通常适用于大多数任何微小变化。如果更改过于宽泛,则表示模块内存中的空间不足,或者如果更改修改了try-catch块,则会导致堆栈展开,因此这些特殊情况需要重建并重新启动。但几乎任何其他东西都可以编辑和继续。
但是对于这个项目,每一个小小的变化,无论我得到什么微不足道的消息"源文件都与模块构建时不同。您是否希望调试器仍然使用它。"如果我选择是,那么我会收到一条警告,即我将要使用陈旧的代码。
为什么这个项目无法更新源代码以与编辑保持同步并继续更改?我是否在项目设置中无意中搞砸了什么?
更新
我尝试了here提出的所有解决方案,但没有运气。这显然是一个常见的问题,因为关于这个主题有很多关于SO的帖子。但看起来似乎没有人有过可靠的解决方案,显然VS编辑和继续是非常有气质的。
打开VS的第二个实例并加载了一个我知道编辑和继续工作的先前项目。我重新确认它确实有效。然后我将项目属性并排放置并验证每个开关和设置完全相同。然后,我将VS选项和设置并排放置,并验证每个设置完全相同。然而,编辑并继续在一个项目中工作,而不是在另一个项目中。
答案 0 :(得分:0)
显然编辑和继续与使用#import指令链接的COM对象不兼容。
我发现我的项目中只有一个模块在编辑时有陈旧的代码并继续。该模块使用#import指令引入ADO COM对象。
编写一个快速包装类来封装COM内容并将其保留在自己的模块中解决了我的问题。
MSDN似乎没有在他们的文档中明确说明这一点 https://msdn.microsoft.com/en-us/library/0dbey757%28v=vs.110%29.aspx