2014-12-24 3 views
0

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), пункты меню обновляются, как ожидалось.

+0

Вот самый простой пример, который я мог бы создать что демонстрирует проблему: http://1drv.ms/1xmZVYR – Number8

ответ

0

Добавить <CommandFlag>NoCache</CommandFlag>

+0

«Недопустимый маркер„NoCache“данное в элемента

Смежные вопросы