【发布时间】:2013-08-12 22:14:04
【问题描述】:
当您编写向 VS 提供菜单项的 VS 插件时,它会调用您的 QueryStatus 实现来检查您的菜单项是否应该可见、启用等。
我的菜单项不适合在某些情况下运行,例如当构建发生时。如何检测是否有构建正在运行?
【问题讨论】:
标签: visual-studio visual-studio-addins envdte
当您编写向 VS 提供菜单项的 VS 插件时,它会调用您的 QueryStatus 实现来检查您的菜单项是否应该可见、启用等。
我的菜单项不适合在某些情况下运行,例如当构建发生时。如何检测是否有构建正在运行?
【问题讨论】:
标签: visual-studio visual-studio-addins envdte
您正在寻找VsShellUtilities.IsSolutionBuilding 方法。使用它的示例可以在 ProjectNode 类中的 Visual Studio 2010 (MPFProj10) 托管包框架中找到:
protected internal virtual bool IsCurrentStateASuppressCommandsMode()
{
if (VsShellUtilities.IsSolutionBuilding(this.Site))
{
return true;
}
DBGMODE dbgMode = VsShellUtilities.GetDebugMode(this.Site) & ~DBGMODE.DBGMODE_EncMask;
if (dbgMode == DBGMODE.DBGMODE_Run || dbgMode == DBGMODE.DBGMODE_Break)
{
return true;
}
return false;
}
【讨论】: