我有一个 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>
这是此处描述的修改“另存为”对话框的确切基本情况。
在我的机器上,它在“另存为”下没有显示任何内容。但是,我确实看到在显示后台时会调用以下函数:
public void Backstage_OnShow(object contextObject) {
// It hits this method.
}
UI 不显示的一些原因是什么,以及如何调试这里发生的事情?我尝试在“常规”部分下的“Word选项”的“高级”选项卡中打开Show add-in user interface errors
,但据我所知,它没有向我显示任何错误。
不确定它是否有帮助,但我们的功能区继承了IRibbonExtensibility
.
我们还发现这种逻辑有时适用于某些机器,但不适用于其他机器。我不知道为什么...我可以告诉您的绝对不同的一件事是,此插件的类型是注册的,而不是使用Outlook 注册表下的注册表项regasm
安装的插件。path|vstolocal
换句话说,我们是regasm
用来安装插件的。
编辑:我已经尝试了建议的答案,但鉴于这种方法它仍然无法正常工作。在这一点上,我和我的团队非常确信这是一个主要的 VSTO 错误,我们已经制作了一个项目来展示它。该项目展示了Windows 10 Pro 64 位版本 1607(OS build 14393.351)和 32 位 Word 2016 16.0.7426.1009(Office 2016 32 位版本 1610,build 7466.2023)的后台错误:https ://github.com/Murdoctor /WordAddin1
如果您在相同或相似的环境中运行此示例,您可以看到,如果您单击 Word 顶部的 Home 选项卡,您将看到https://github.com/Murdoctor/WordAddin1/blob中定义的按钮/master/WordAddIn1/Ribbon1.xml,但是,如果您打开后台,您看不到应该在信息选项卡之后插入的示例选项卡,TabInfo
(此屏幕截图是在调试模式下直接从 Visual Studio,我可以看到插件已注册,一切也已注册):
您将看到的唯一内容是(这也是插件正在运行并已注册到其本地 VSTO 文件的证明):
编辑:这也会影响 Office 64 位。我刚刚安装了Word 2016 16.0.7426.1009(Office 2016 64 位版本 1610,内部版本 7466.2023),认为更改为 x64 可能会有所帮助,但我的机器上仍然遇到同样的问题。
编辑:这也会影响今天发布的Windows 10 Pro x64 版本 1607,内部版本 14393.447。另外,我尝试禁用所有其他插件,仍然是同样的事情。