调试vsto功能区回调

时间:2017-05-29 00:48:47

标签: vsto contextmenu outlook-addin ribbon

我有一个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应该返回一个字符串,但它似乎不起作用。 getVisible工作正常(返回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";
    }
}

2 个答案:

答案 0 :(得分:2)

不要同时使用labelgetLabel。另外,在File | Options | Advanced | Developer中启用插件错误以查看所有功能区XML错误。

答案 1 :(得分:0)

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

documentation解释了什么是互斥的。