从visual studio软件包(VSIX)如何检测解决方案或项目构建?
如果程序集中有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...
}
}
ref:VSIX:获取DTE对象ref:http://msdn.microsoft.com/en-us/library/envdte.solution.aspx
ref:http://msdn.microsoft.com/en-us/library/envdte._solution.projects.aspx
看看DTE.Events.BuildEvents
有OnBuildBegin
和OnBuildDone
的活动。