在Visual Studio Stop上做出反应

时间:2016-01-27 10:00:33

标签: c# visual-studio cefglue

当从Visual Studio运行代码时,是否可以运行代码?

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

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

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

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

修改 只需很少的代码就不会出现问题。不过我试图创建一个简化的示例here

1 个答案:

答案 0 :(得分:1)

您正在寻找的是使用Visual Studio SDK的解决方案。

您可以通过实施IDTExtensibility interface来构建自己的加载项。

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);
}

启动构建时会触发此操作。可用的文档不是很好,因此在找到所需内容之前需要进行一些反复试验。