如何使用VSPackage检测Visual Studio IDE是否正在关闭?

我正在编写一个VS包,我需要存储用户启动包的时间,以及用户关闭Visual Studio时的时间。

问题是,我不知道如何获得Visual Studio的结束事件。 谁能给我任何关于如何检测VS是否关闭的信息?

注意:当我从互联网上搜索时,我遇到了类似的问题: 如何通过VSPackage取消ToolWindowPane或Visual Studio IDE关闭操作? ,但是当我尝试它时,这个解决方案是在Package窗口关闭时检测并执行某些操作,并且无法检测Visual Studio何时关闭。

任何帮助都非常感谢。

谢谢

只是为了明确并解决这个问题。 这是检查VS是否正在关闭的代码快照:

// Create 2 variables below private DTE2 m_applicationObject = null; DTEEvents m_packageDTEEvents = null; 

然后在Initialize中添加:

 // Link the Event when VS CLOSING m_packageDTEEvents = ApplicationObject.Events.DTEEvents; m_packageDTEEvents.OnBeginShutdown += new _dispDTEEvents_OnBeginShutdownEventHandler(HandleVisualStudioShutDown); 

您需要的其他两种方法:

  public DTE2 ApplicationObject { get { if (m_applicationObject == null) { // Get an instance of the currently running Visual Studio IDE DTE dte = (DTE)GetService(typeof(DTE)); m_applicationObject = dte as DTE2; } return m_applicationObject; } } 

 public void HandleVisualStudioShutDown() { MessageBox.Show("Exiting Visual Studio. Bye"); }