VS2013 Pro SP 4
Win 8.1 x64VSPackage текст пункта меню не обновляется, Win8.1
У меня есть два OleMenuCommands добавлены в меню Tools. Я дал им обработчик события 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 файл в <Button>
элементы имеют
<CommandFlag>TextChanges</CommandFlag>
Как я могу диагностировать, что происходит не так? Это, похоже, не проблема с пакетом, установленным в VS2012/2013, запущенным на Win7.
Еще одно странное замечание: когда я отлаживаю VSPackage (путем запуска devenv.exe с аргументом/RootSuffix Exp), пункты меню обновляются, как ожидалось.
Вот самый простой пример, который я мог бы создать что демонстрирует проблему: http://1drv.ms/1xmZVYR – Number8