C# DebuggerEvents.OnEnterRunMode事件不';t在Visual Studio 2012中工作

C# DebuggerEvents.OnEnterRunMode事件不';t在Visual Studio 2012中工作,c#,events,visual-studio-2012,visual-studio-addins,C#,Events,Visual Studio 2012,Visual Studio Addins,我已经在Visual Studio 2010中成功运行了加载项,但当我在Visual Studio 2012中运行它时,DebuggerEvents.OnEnterRunMode事件不会触发。 在中,Visual Studio 2010和Visual Studio 2012之间的DebuggerEvents事件中没有任何更改 我的代码是: static DebuggerEvents dbgEvents; public void OnConnection(object applicati

我已经在Visual Studio 2010中成功运行了加载项,但当我在Visual Studio 2012中运行它时,DebuggerEvents.OnEnterRunMode事件不会触发。 在中,Visual Studio 2010和Visual Studio 2012之间的DebuggerEvents事件中没有任何更改

我的代码是:

static DebuggerEvents dbgEvents;

    public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
     _applicationObject = (DTE2)application;
     _addInInstance = (AddIn)addInInst;

     dbgEvents = _applicationObject.Events.DebuggerEvents;

     ...

     if (registered)
       {
       return;
       }

    dbgEvents.OnEnterRunMode += new _dispDebuggerEvents_OnEnterRunModeEventHandler(DebuggerEvents_OnEnterRunMode);
    dbgEvents.OnEnterDesignMode += new _dispDebuggerEvents_OnEnterDesignModeEventHandler(dbgEvents_OnEnterDesignMode);
    registered = true;
   }
    void DebuggerEvents_OnEnterRunMode(dbgEventReason Reason)
     {
      ...
     }
OnConnection()和其他事件(如SolutionEvents.Opened)都会触发,但当我在visual studio中单击“开始”运行项目时,不会调用OnEnterUnmode事件。 有什么想法吗?

我找到了解决方案:

DebuggerEvents.OnEnterRunMode()事件使用
EnvDTE.dll。


当EnvDTE.dll
Embed Interop Types
的属性为
True
时,
DebuggerEvents.OnEnterRunMode
事件不会触发。

最简单的解释是没有调用OnConnection()。添加logging.no,调用OnConnection()。(我在问题中对其进行了编辑)。没有事件的记录,在connect.microsoft.com上没有任何记录。你的代码片段不足以让这里的任何人重现这个问题。您无法获得Microsoft对此的支持,事件记录为“不打算直接从您的代码中使用”。前进的最佳方式是在VS2013中重新编程,然后在connect.microsoft.com上提交报告。您必须包含外接程序的完整源代码,以便他们可以对其进行重新编程。请参阅以下示例作为OnEnterRunMode的工作参考: