我无法在不删除加载项命令或运行它的情况下为我的Word插件设置Manifest中的要求。
My Manifest看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp
xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides"
xsi:type="TaskPaneApp">
<Id>id</Id>
<Version>1.0.0.4</Version>
<ProviderName>Bernhard Webstudio</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="foo" />
<Description DefaultValue="bar"/>
<IconUrl DefaultValue="~remoteAppUrl/Images/logo.png" />
<SupportUrl DefaultValue="https://twitter.com/BernhardWStudio" />
<AppDomains>
<AppDomain>AppDomain1</AppDomain>
<AppDomain>AppDomain2</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Document" />
</Hosts>
<!-- when commenting the following lines out, it works -->
<Requirements>
<Sets DefaultMinVersion="1.3">
<Set Name="TableBindings" />
<Set Name="Selection" />
<Set Name="AddinCommands" MinVersion="1.1" />
</Sets>
</Requirements>
<DefaultSettings>
<SourceLocation DefaultValue="~remoteAppUrl/Home.html" />
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
<!-- when I set the Requirements here (with bt: prefix for Sets & Set), I only see the taskpane but no ribbon buttons -->
<Hosts>
<Host xsi:type="Document">
<DesktopFormFactor>
<GetStarted>
<Title resid="BeWeStd.GetStarted.Title"/>
<Description resid="BeWeStd.GetStarted.Description"/>
<LearnMoreUrl resid="BeWeStd.GetStarted.LearnMoreUrl"/>
</GetStarted>
<FunctionFile resid="BeWeStd.DesktopFunctionFile.Url" />
<ExtensionPoint xsi:type="PrimaryCommandSurface">
<OfficeTab id="TabHome">
<Group id="BeWeStd.Group1">
<Label resid="BeWeStd.Group1Label" />
<Icon>
<bt:Image size="16" resid="BeWeStd.tpicon_16x16" />
<bt:Image size="32" resid="BeWeStd.tpicon_32x32" />
<bt:Image size="32" resid="BeWeStd.tpicon_64x64" />
<bt:Image size="80" resid="BeWeStd.tpicon_80x80" />
</Icon>
<Control xsi:type="Button" id="BeWeStd.TaskpaneBtn.Info">
<Label resid="BeWeStd.TaskpaneBtn.Info.Label" />
<Supertip>
<Title resid="BeWeStd.TaskpaneBtn.Info.Label" />
<Description resid="BeWeStd.TaskpaneBtn.Info.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="BeWeStd.infoicon_16x16" />
<bt:Image size="32" resid="BeWeStd.infoicon_32x32" />
<bt:Image size="80" resid="BeWeStd.infoicon_80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<TaskpaneId>ButtonId1</TaskpaneId>
<SourceLocation resid="BeWeStd.Taskpane.Url" />
</Action>
</Control>
<!-- more Control elements removed to reduce Code -->
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<!-- resources not listed to reduce amount of Code -->
</Resources>
</VersionOverrides>
</OfficeApp>
我尝试在不同的地方设置它们(请参阅代码中的注释)。不幸的是,它没有帮助。加载项崩溃(没有log)或不显示功能区项目。我需要设置需求,因为我的功能依赖于API 1.3,并且在老版本中不起作用,因此如果没有它,外接程序就不会被批准。
<Requirements>
的上述展示位置受the docs的启发。如果我进一步向上或向下放置一个元素,则xml验证失败。但现在它的位置,验证告诉我它应该工作。
在不破坏加载项的情况下,我必须在哪里放置<Requirements>
?
答案 0 :(得分:1)
此处的问题是DefaultMinVersion="1.3"
设置子元素的默认版本。反过来,这意味着您需要TableBindings
和Selection
的最低版本1.3。这两个需求集的最新版本是1.1,因此Word无法加载加载项,因为它无法满足您的最低版本要求。
此处您需要指定WordApi
,其最低版本为1.3
。请尝试使用此代码:
<Requirements>
<Sets DefaultMinVersion="1.1">
<Set Name="TableBindings" />
<Set Name="Selection" />
<Set Name="AddinCommands" />
<Set Name="WordApi" MinVersion="1.3" />
</Sets>
</Requirements>