When you write a VS addin that proffers menu items to VS, it calls your QueryStatus implementation to check whether your menu items should be visible, enabled, etc.

My menu items are not appropriate to run during certain situations, e.g. when a build is happening. How do I detect whether there's a build running?

有帮助吗?

解决方案

You're looking for the VsShellUtilities.IsSolutionBuilding method. An example of using it can be found the Managed Package Framework for Visual Studio 2010 (MPFProj10) in the ProjectNode class:

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;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top