C# VSPackage菜单项文本不更新,Win8.1

C# VSPackage菜单项文本不更新,Win8.1,c#,visual-studio-2013,vspackage,C#,Visual Studio 2013,Vspackage,VS2013 Pro SP 4 Win 8.1 x64 我在“工具”菜单中添加了两个OleMenuCommand。我为他们提供了BeforeQueryStatus事件的处理程序 我已经向OnBeforeQueryStatus添加了调试代码,显示正在调用处理程序,并且正在选择正确的文本。但是,“工具”菜单上的两个菜单项未正确更新。以下是OnBeforeQueryStatus: private void OnBeforeQueryStatus(object sender, EventArgs e)

VS2013 Pro SP 4 Win 8.1 x64

我在“工具”菜单中添加了两个OleMenuCommand。我为他们提供了BeforeQueryStatus事件的处理程序

我已经向OnBeforeQueryStatus添加了调试代码,显示正在调用处理程序,并且正在选择正确的文本。但是,“工具”菜单上的两个菜单项未正确更新。以下是OnBeforeQueryStatus:

private void OnBeforeQueryStatus(object sender, EventArgs e)  
{  
DbgMessage("OnBeforeQueryStatus");  
var myCommand = sender as OleMenuCommand;  

if (null != myCommand)  
{  
    if (myCommand.CommandID.ID == (int)PkgCmdIdList.CmdIdCBAutoSave)  
    {  
        myCommand.Text = _autosaveEnabled ? "Disable Document AutoSave" : "Enable Document AutoSave";  
        DbgMessage(myCommand.Text);  
    }  
    if (myCommand.CommandID.ID == (int)PkgCmdIdList.CmdIdCBAutoSaveProject) 
    {  
        myCommand.Text = _autosaveProjectEnabled ? "Disable AutoSaveProject" : "Enable AutoSaveProject";  
        myCommand.Enabled = _autosaveEnabled;  
        DbgMessage(myCommand.Text);   
    }   
    DbgMessage(string.Format("Id: {0}  Text: {1}", myCommand.CommandID.ID, myCommand.Text));  
}  
}  
在.vsct文件中,元素具有

<CommandFlag>TextChanges</CommandFlag>  
我如何诊断出哪里出了问题?在Win7上运行的VS2012/2013中安装的软件包似乎没有问题


另一个奇怪的观察结果是:当我通过使用/RootSuffix Exp参数启动devenv.exe来调试VSPackage时,菜单项会按预期更新。

Add NoCache

这里是我可以创建的最简单的示例,演示了这个问题:元素中的元素中给出了无效的标记“NoCache”