1

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?

4

1 回答 1

1

你正在寻找VsShellUtilities.IsSolutionBuilding方法。使用它的示例可以在课程中找到 Visual Studio 2010 (MPFProj10) 的托管包框架ProjectNode

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;
}
于 2013-08-12T22:34:41.590 回答