我正在开发一个扩展 (VSPackage),我正在订阅 VSPackage.cs 构造函数中的 2 个调试器事件
public sealed class ComboBoxPackage : Package
{
....
public ComboBoxPackage()
{
Trace.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering constructor for: {0}", this.ToString()));
_dte = (DTE)Package.GetGlobalService(typeof(DTE));
_events = _dte.Events;
_debuggerEvents = _events.DebuggerEvents;
_debuggerEvents.OnEnterRunMode += _debugEvents_OnEnterRunMode;
_debuggerEvents.OnContextChanged +=_debuggerEvents_OnContextChanged;
}
void _debuggerEvents_OnContextChanged(EnvDTE.Process NewProcess, Program NewProgram, Thread NewThread, EnvDTE.StackFrame NewStackFrame)
{
throw new NotImplementedException();
}
private void _debugEvents_OnEnterRunMode(dbgEventReason Reason)
{
return;
}
}
当我运行它(开始运行应用程序)时,只会调用 _debuggerEvents_OnContextChanged,而不会调用 _debugEvents_OnEnterRunMode。
如果我对 Addin 项目做同样的事情,一切正常。
最佳答案
我希望还不够晚... 您是否直接从代码中保留对 DebuggerEvents 的引用并从那里处理事件。
我也是这样,我就这样解决了。
关于c# - VSPackage 中的 OnEnterRunMode 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11953094/