我有一个 Office 插件,它使用以下后台 XML 将自定义 UI 元素添加到 Microsoft Word 后台:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<backstage onShow="Backstage_OnShow">
<tab idMso="TabSave">
<firstColumn>
<taskFormGroup idMso="SaveGroup">
<category idMso="Save">
<task id="myCustomTask" label="My Custom Task" insertAfterMso="ButtonTaskDynamicServiceProvider">
<group id="myGroupInTabSave" label="Custom functionality" helperText="This group contains custom functionality.">
<primaryItem>
<button id="myButton" label="My Button" onAction="CallMe" />
</primaryItem>
</group>
</task>
</category>
</taskFormGroup>
</firstColumn>
</tab>
</backstage>
</customUI>
这正是 here 中描述的用于修改“另存为”对话框的基本情况。
在我的机器上,它在另存为下没有显示任何内容。但是,我确实看到在显示后台时调用了以下函数:
public void Backstage_OnShow(object contextObject) {
// It hits this method.
}
UI 不显示的一些原因是什么,另外,我该如何调试这里发生的事情?我尝试在 Word 选项的“高级”选项卡中的“常规”部分下打开显示加载项用户界面错误
,但据我所知,它没有向我显示任何错误。
不确定是否有帮助,但我们的功能区继承了 IRibbonExtensibility
。
我们还发现这种逻辑有时在某些机器上有效,但在其他机器上无效。我不知道为什么......我可以告诉你的一件事是绝对不同的是这个插件的类型是用 regasm
注册的,而不是使用 path| 安装的插件。 Outlook 注册表下的 vstolocal
注册表项。换句话说,我们正在使用 regasm
来安装插件。
编辑:我已经尝试了建议的答案,但鉴于该方法,它仍然无效。在这一点上,我和我的团队非常确信这是一个主要的 VSTO 错误,我们已经制定了一个项目来展示它。此项目展示了 Windows 10 Pro 64 位版本 1607(操作系统内部版本 14393.351)和 32 位 Word 2016 16.0.7426.1009(Office 2016 32 位版本 1610,内部版本 7466.2023) 的后台错误:https://github.com/Murdoctor/WordAddin1
如果您在相同或相似的环境中运行此示例,您可以看到,如果您单击 Word 顶部的“主页”选项卡,您将看到定义在 https://github.com/Murdoctor/WordAddin1/blob/master/WordAddIn1/Ribbon1.xml 中的按钮,但是,如果您打开后台您看不到应在信息选项卡 TabInfo
之后插入的示例选项卡(此屏幕截图是直接从 Visual Studio 以 Debug模式运行的发布版本截取的,我可以看到插件是注册和一切):
您唯一会看到的是这个(这也证明插件正在运行并已注册到其本地 VSTO 文件):
编辑:这也会影响 Office 64 位。我刚刚安装了 Word 2016 16.0.7426.1009(Office 2016 64 位版本 1610,内部版本 7466.2023),我认为更改为 x64 可能会有帮助,但我在我的机器上仍然遇到同样的问题。
编辑:这也会影响今天发布的 Windows 10 Pro x64 版本 1607,内部版本 14393.447。另外,我试过禁用所有其他插件,还是一样。
最佳答案
这是 Office 的一个错误。我可以在我的环境中确认,这在使用 November 8 update 手动更新 Word 后再次起作用昨天出来了。当我尝试在 Windows 10 中搜索更新时没有显示此更新,而是我必须以这种方式安装它:
在 Word 中,点击文件打开后台。
点击更新选项下拉菜单。
选择立即更新。
一旦您更新到 Office 版本 1610,内部版本 7466.2038,此错误就会消失:
关于c# - 为什么这个自定义的 Word 后台 UI 不显示其用户界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40431114/