响应 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。
当代码从 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。