У меня есть Office addin, который использует следующий за кулисами XML для добавления пользовательских элементов интерфейса в 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>
Это точный базовый сценарий, описанный здесь, чтобы изменить диалог "Сохранить как".
На моей машине ничего не отображается в Save As. Тем не менее, я вижу, что следующая функция вызывается, когда показана кулинария:
public void Backstage_OnShow(object contextObject) {
// It hits this method.
}
Каковы некоторые причины, по которым пользовательский интерфейс не будет отображаться, а также, как я могу отладить, что здесь происходит? Я попытался включить Show add-in user interface errors
на вкладке "Дополнительно" в разделе "Параметры Word" в разделе "Общие", но, насколько я могу судить, для меня нет никаких ошибок.
Не уверен, что это помогает, но наша лента наследует IRibbonExtensibility
.
Мы также обнаружили, что эта логика иногда работает на некоторых машинах, но не на других. Я не знаю, почему... одна вещь, которую я могу вам сказать, совершенно определенно в том, что типы для этого addin регистрируются с помощью regasm
, а не с добавлением админа, использующего раздел реестра path|vstolocal
в реестре Outlook. Другими словами, мы используем regasm
для установки addin.
Изменить. Я пробовал предлагаемый ответ, но он все еще не работает при таком подходе. Моя команда и я довольно убеждены в этом, что это основная ошибка VSTO, и мы подготовили проект, чтобы продемонстрировать его. Этот проект демонстрирует ошибки за кулисами: Windows 10 Pro 64-разрядная версия 1607 (OS build 14393.351) и 32-разрядная версия Word 2016 16.0.7426.1009 (32-разрядная версия Office 2016, сборка 7466.2023): https://github.com/Murdoctor/WordAddin1
Если вы запустите этот пример в той же или подобной среде, вы увидите, что если вы нажмете вкладку "Главная" в верхней части Word, вы увидите кнопку, которая определена в https://github.com/Murdoctor/WordAddin1/blob/master/WordAddIn1/Ribbon1.xml, но если вы откроете кулисы, вы не увидите вкладку с образцом, которая должна быть вставлена после вкладки info, TabInfo
(этот снимок экрана был сделан с выпуском build run в режиме отладки непосредственно из Visual Studio, и я вижу, что добавление зарегистрировано и все также):
Единственное, что вы увидите, это (это также доказательство того, что addin запущен и зарегистрирован в его локальном файле VSTO):
Изменить. Это также влияет на Office 64-bit. Я просто установил Word 2016 16.0.7426.1009 (Office 2016 64-разрядная версия 1610, сборка 7466.2023), думая, что изменение на x64 может помочь, но я все еще испытываю такую же проблему на своей машине.
Изменить. Это также влияет на сегодняшний выпуск Windows 10 Pro x64 версии 1607, сборка 14393.447. Кроме того, я попытался отключить все другие дополнения, все еще одно и то же.