如何从 Visual Studio 包 (VSIX) 中检测解决方案或项目构建?
问问题
3344 次
2 回答
4
如果您的程序集中有一个 Package 类,您可以执行以下操作:
DTE2 = Package.GetGlobalService(typeof(SDTE)) as DTE2;
然后查看IsOpen 属性,查看解决方案是否已打开...查看Projects 属性以找到项目。
但是,如果您的意思是当打开解决方案时我如何获得事件......那么解决方案,例如:
public sealed class MyPackage : Package
{
private DTE m_dte;
protected override void Initialize()
{
IServiceContainer serviceContainer = this as IServiceContainer;
m_dte = serviceContainer.GetService(typeof(SDTE)) as DTE;
var m_solutionEvents = m_dte.Events.SolutionEvents;
m_solutionEvents.Opened += SolutionOpened;
...
}
void SolutionOpened()
{
.... away you go...
}
}
参考:VSIX:获取 DTE 对象参考:http: //msdn.microsoft.com/en-us/library/envdte.solution.aspx
参考:http: //msdn.microsoft.com/en-us/library/envdte._solution.projects.aspx
于 2011-11-10T22:55:00.553 回答
2
看看DTE.Events.BuildEvents
有 和 的OnBuildBegin
事件OnBuildDone
。
于 2019-03-29T13:53:31.727 回答