Visual Studio SDK Breakpoint2.BreakWhenHit = true 抛出异常 0x8971101A

Visual Studio SDK Breakpoint2.BreakWhenHit = true throws exception 0x8971101A

以下代码产生异常:

Breakpoint2 breakpoint = ...;
breakpoint.BreakWhenHit = true;

// System.Runtime.InteropServices.COMException (0x8971101A): Exception from HRESULT: 0x8971101A
//   at EnvDTE80.Breakpoint2.set_BreakWhenHit(Boolean BreakWhenHit)

但是如果我把BreakWhenHit设置为false,也不例外。

为什么会发生这种情况,我该如何解决?

如果没有设置断点Message,好像会运行失败
奇怪的是它在 BreakWhenHit = true(断点)上失败了,但在 UI 中只有跟踪点需要一条消息。

这是我的解决方法(需要时 sets/resets 消息):

private void SetBreakWhenHit(Breakpoint2 breakpoint, bool value) {
    var messageStubbed = false;
    if (value && string.IsNullOrEmpty(breakpoint.Message)) {
        // 
        breakpoint.Message = "stub";
        messageStubbed = true;
    }
    breakpoint.BreakWhenHit = value;
    if (messageStubbed)
        breakpoint.Message = "";
}