调试 vsto 功能区回调

Debugging vsto ribbon callbacks

我有一个 VSTO Outlook 功能区(上下文菜单),它按预期工作:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <contextMenus>
    <contextMenu idMso="ContextMenuMailItem">
      <button id="DoThis"
          label="Label"
          onAction="DoThis"
          getVisible="GetVisible"/>
    </contextMenu>
</customUI>

但是,如果我有一个 getLabel 属性,那么上下文菜单将不再显示。我想我一定是搞砸了,但没有迹象表明是什么;没有日志,没有例外,什么都没有。此外,我找不到任何地方记录每个回调的定义应该是什么。我只是尝试了显而易见的,getLabel 应该 return 一个字符串,但它似乎不起作用。 getVisible 工作正常(returning a bool)。

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <contextMenus>
    <contextMenu idMso="ContextMenuMailItem">
      <button id="DoThis"
          label="Label"
          onAction="DoThis"
          getVisible="GetVisible"
          getLabel="GetLabelMoveToReviewFolderMultiple"/>
    </contextMenu>
</customUI>

和后面的代码(其他方法未显示):

[ComVisible(true)]
public class ContextMenu : Office.IRibbonExtensibility
{
    public string GetLabelMoveToReviewFolderMultiple(Office.IRibbonControl control)
    {
       return "Custom Label";
    }
}

好吧,在写问题时,我尝试使用 getLabel 删除上下文菜单的标签属性,这确实解决了问题;之后上下文菜单工作正常。我(最初)认为将标签保留为默认值可能有意义。

documentation解释什么是互斥。

不要同时使用 labelgetLabel。此外,启用 File | Options | Advanced | Developer 中的加载项错误以查看所有功能区 XML 错误。