响应 Visual Studio 停止

React on Visual Studio Stop

当代码从 Visual Studio 中 运行 停止时,是否有可能 运行 一些代码?

我正在使用 CefGlue 库构建一个 WinForms 应用程序,我意识到在按下停止按钮时会出现问题,范围从异常到两个 windows 没有内容打开。一个单独的进程在后台继续 运行。为了很好地停止 Cef,我需要执行 CefRuntime.Shutdown(); 也许这是因为它没有 运行 在 Visual Studio 托管进程中的应用程序,因为 CefGlue 对此有问题(参见 this).这不影响生产,但在开发和测试时很讨厌,但是我还是想执行一些代码来解决这个问题。

我猜这是不可能的,但如果是的话,知道会很有趣。

所以我正在寻找一种方法来在 Visual Studio 在开发过程中按下停止按钮停止应用程序时执行一些代码。

注意:我使用的是 Visual Studio 2013 和 2015。

编辑 使用很少的代码行无法重现该问题。尽管如此,我还是尝试创建一个简化的示例 here

您主要寻找的是使用 Visual Studio SDK 的解决方案。

您可以通过实施 IDTExtensibility interface.

构建自己的 add-ins

OnConnection函数中您可以订阅不同的事件。使用 (DTE2)application 您可以从 VS 访问 a lot of things

您必须订阅一些可以从 Events property 获得的事件。

您必须自己找出哪些事件最适合您的解决方案。但是 DebuggerEvents 似乎是一个不错的起点。

这确实需要一些研究才能使用。可能会有更简单的解决方案。

作为OnConnection的简单示例:

public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    var applicationObject = (DTE2)application;

    var events = _applicationObject.Events;
    var buildEvents = (BuildEvents)events.BuildEvents;
    buildEvents.OnBuildBegin += new _dispBuildEvents_OnBuildBeginEventHandler(OnBuildBegin);
}

构建开始时触发。可用的文档不是很好,因此在找到所需内容之前需要一些 trial-and-error。