当从Visual Studio运行代码时,是否可以运行代码?
我正在使用CefGlue库来构建一个WinForms应用程序,并意识到按下从Exception到两个没有打开内容的窗口的停止按钮时会出现问题。一个单独的过程继续在后台运行。为了很好地停止Cef,我需要exectue CefRuntime.Shutdown();
也许这是因为它没有在Visual Studio托管过程中运行应用程序,因为CefGlue有这个问题(参见this)。这不会影响生产,但在开发和测试时会很讨厌,但是我想执行一些代码来解决问题。
我猜这是不可能的,但如果是这样的话会很有趣。
所以当我在开发过程中按下停止按钮时Visual Studio停止应用程序时,我正在寻找一种执行某些代码的方法。
注意:我使用的是Visual Studio 2013和2015。
修改 只需很少的代码就不会出现问题。不过我试图创建一个简化的示例here
答案 0 :(得分:1)
您正在寻找的是使用Visual Studio SDK的解决方案。
您可以通过实施IDTExtensibility interface来构建自己的加载项。
在OnConnection
功能中,您可以订阅不同的活动。使用(DTE2)application
,您可以从VS。
您必须订阅可以从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);
}
启动构建时会触发此操作。可用的文档不是很好,因此在找到所需内容之前需要进行一些反复试验。