【问题标题】:VB.net Edit-And-Continue: ignore "unable to apply this change while debugging"VB.net Edit-And-Continue:忽略“调试时无法应用此更改”
【发布时间】:2010-05-13 19:42:19
【问题描述】:

当使用 VB.Net (2008) 并暂停调试时,Edit-And-Continue 可以节省大量时间。但是,如果您更改任何模块/类级别的信息(变量、子/函数签名等),您会收到如下错误消息:

"unable to apply this change while debugging"

虽然我能理解完成这项工作所面临的技术挑战(以及为什么会如此困难),但它让我陷入了困境,只有几个选择:

1) 重启并重新编译,让程序恢复到原来的状态
2) 继续调试而不进行更改,并且有忘记的风险
3) 输入提醒事项以进行更改

所有这些都烦人。

现在我知道选项“4)只是实际进行更改”可能是不可能的。但是有人知道如何实现以下“技术上简单”的可能性吗?

4) 让我更改代码,用紫色波浪下划线标记它,这样我就可以保存它,但在重新编译之前忽略更改

我已经检查了工具|选项|调试|编辑并继续,似乎没有什么可以让我这样做。

谢谢!

【问题讨论】:

    标签: vb.net edit-and-continue


    【解决方案1】:

    您不能完全按照您的意愿行事,但您可以在另一个 vs 实例中打开解决方案/项目并更改其中的代码。不过,您必须确保没有保存它。

    【讨论】:

    • Ben,这确实是我一直在寻找的唯一东西,我不知道为什么我没有想到这么简单的解决方案。当然,我仍然需要探索这些文件,但它胜过我的其他选择——尝试(并且经常失败)记住,或者做笔记。我想我希望有一个内置选项来允许这样做。
    【解决方案2】:

    很遗憾,这是不可能的。

    这并不像您想象的那么简单。
    至少,您将使所有行号无效(尽管这也发生在正常的 E&C 中)。 但是,IDE 需要额外的验证层,以防止您执行更改方法签名或类接口等可能导致无法进行源代码级调试的操作。

    此外,对于不完全了解正在发生的事情的人来说,这会非常混乱。

    【讨论】:

      【解决方案3】:

      我不认为这是可能的,当你说这很容易时,我想你忘记了 Visual Studio 必须跟踪你所做的任何更改与编译时的情况相比,以便它可以向您显示您在调试器等中所处的正确行,如果您添加一些行,删除一些其他行并修改一些行可能会变得非常混乱以涵盖所有可能发生的情况,并且它也可能非常混乱。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-04
        • 1970-01-01
        • 1970-01-01
        • 2020-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多