C# DebuggerEvents.OnEnterRunMode事件不';t在Visual Studio 2012中工作
我已经在Visual Studio 2010中成功运行了加载项,但当我在Visual Studio 2012中运行它时,DebuggerEvents.OnEnterRunMode事件不会触发。 在中,Visual Studio 2010和Visual Studio 2012之间的DebuggerEvents事件中没有任何更改 我的代码是: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
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的工作参考: