【发布时间】:2011-04-27 13:06:10
【问题描述】:
如何从 Visual Studio 包 (VSIX) 检测解决方案或项目构建?
【问题讨论】:
标签: visual-studio visual-studio-2010 visual-studio-addins vsix
如何从 Visual Studio 包 (VSIX) 检测解决方案或项目构建?
【问题讨论】:
标签: visual-studio visual-studio-2010 visual-studio-addins 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...
}
}
参考:VSIX:获取 DTE 对象参考:http://msdn.microsoft.com/en-us/library/envdte.solution.aspx
参考:http://msdn.microsoft.com/en-us/library/envdte._solution.projects.aspx
【讨论】:
看看DTE.Events.BuildEvents 有OnBuildBegin 和OnBuildDone 的事件。
【讨论】: