为什么这个自定义后台 UI for Word 不显示其用户界面?
Why is this custom backstage UI for Word not displaying its user interface?
我有一个 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 选项的高级选项卡中打开 Show add-in user interface errors
,但据我所知,它没有向我显示任何错误。
不确定是否有帮助,但我们的功能区继承了 IRibbonExtensibility
。
我们还发现此逻辑有时在某些机器上有效,但在其他机器上无效。我不知道为什么......我可以告诉你的一件事绝对不同的是,这个插件的类型是用 regasm
注册的,而不是使用 path|vstolocal
下的注册表项安装插件Outlook 的注册表。换句话说,我们正在使用 regasm
安装插件。
编辑:我已经尝试了建议的答案,但鉴于该方法,它仍然不起作用。在这一点上,我和我的团队非常确信这是一个主要的 VSTO 错误,我们已经制定了一个项目来展示它。该项目展示了 Windows 10 Pro 64 位版本 1607(OS 内部版本 14393.351)和 32 位 Word 2016 16.0.7426.1009(Office 2016 32 位版本 1610,内部版本 7466.2023):https://github.com/Murdoctor/WordAddin1
如果您 运行 在相同或相似的环境中使用此示例,您可以看到,如果单击 Word 顶部的“主页”选项卡,您将看到 [=21= 中定义的按钮], 但是,如果你打开后台,你看不到应该在信息选项卡之后插入的示例选项卡,TabInfo
(此屏幕截图是直接在调试模式下使用发布版本 运行 截取的来自 Visual Studio,我可以看到插件已注册以及所有内容):
你唯一会看到的是这个(这也证明插件是 运行ning 并注册到它的本地 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里面,点击文件打开后台。
单击更新选项下拉菜单。
Select 立即更新.
一旦更新到 Office 版本 1610,内部版本 7466.2038,此错误就会消失:
我有一个 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 选项的高级选项卡中打开 Show add-in user interface errors
,但据我所知,它没有向我显示任何错误。
不确定是否有帮助,但我们的功能区继承了 IRibbonExtensibility
。
我们还发现此逻辑有时在某些机器上有效,但在其他机器上无效。我不知道为什么......我可以告诉你的一件事绝对不同的是,这个插件的类型是用 regasm
注册的,而不是使用 path|vstolocal
下的注册表项安装插件Outlook 的注册表。换句话说,我们正在使用 regasm
安装插件。
编辑:我已经尝试了建议的答案,但鉴于该方法,它仍然不起作用。在这一点上,我和我的团队非常确信这是一个主要的 VSTO 错误,我们已经制定了一个项目来展示它。该项目展示了 Windows 10 Pro 64 位版本 1607(OS 内部版本 14393.351)和 32 位 Word 2016 16.0.7426.1009(Office 2016 32 位版本 1610,内部版本 7466.2023):https://github.com/Murdoctor/WordAddin1
如果您 运行 在相同或相似的环境中使用此示例,您可以看到,如果单击 Word 顶部的“主页”选项卡,您将看到 [=21= 中定义的按钮], 但是,如果你打开后台,你看不到应该在信息选项卡之后插入的示例选项卡,TabInfo
(此屏幕截图是直接在调试模式下使用发布版本 运行 截取的来自 Visual Studio,我可以看到插件已注册以及所有内容):
你唯一会看到的是这个(这也证明插件是 运行ning 并注册到它的本地 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里面,点击文件打开后台。
单击更新选项下拉菜单。
Select 立即更新.
一旦更新到 Office 版本 1610,内部版本 7466.2038,此错误就会消失: