Не удается указать требования, установленные для файла OfficeApp manifest.xml.

У меня есть надстройка Office/приложение TaskPane.

Когда я пытаюсь указать требования, установленные для этого приложения, в файле manifest.xml, я получаю следующую ошибку от office-addin-validator:

Элемент OfficeApp в пространстве имен http://schemas.microsoft.com/office/appforoffice/1.1 имеет недопустимый дочерний элемент Requirements в пространстве имен http://schemas.microsoft.com/office/appforoffice/1.1

В документации ясно указано, что Requirements на самом деле разрешено в этом расположение.

Я могу добавить набор требований внутри тега VersionOverrides, и этот раздел выглядит так:

<VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
    <Requirements>
        <bt:Sets>
            <bt:Set Name="ExcelApi" MinVersion="1.1"/>
        </bt:Sets>
    </Requirements>
    <!--- ... -->
</VersionOverrides>

Однако office-addin-validator неправильно определяет, что более старые версии Excel не поддерживаются.

Каков правильный способ сделать это? Я не могу сказать, является ли это ошибкой в ​​инструменте office-addin-validator или устаревшей документацией.

ИЗМЕНИТЬ

Вот неудачный манифест:

<?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>999dfa02-364b-450c-a66b-b4baaae2e6f9</Id>
    <Version>1.0.0.0</Version>
    <ProviderName>[Provider name]</ProviderName>
    <DefaultLocale>en-US</DefaultLocale>
    <DisplayName DefaultValue="My Office Add-in" />
    <Description DefaultValue="[Workbook Add-in description]"/>
    <IconUrl DefaultValue="https://localhost:3000/assets/icon-32.png" />
    <HighResolutionIconUrl DefaultValue="https://localhost:3000/assets/hi-res-icon.png"/>
    <SupportUrl DefaultValue="[Insert the URL of a page that provides support information for the app]"/>
    <AppDomains>
        <AppDomain>AppDomain1</AppDomain>
        <AppDomain>AppDomain2</AppDomain>
        <AppDomain>AppDomain3</AppDomain>
    </AppDomains>
    <Hosts>
        <Host Name="Workbook" />
    </Hosts>
    <DefaultSettings>
        <SourceLocation DefaultValue="https://localhost:3000/index.html" />
    </DefaultSettings>
    <Permissions>ReadWriteDocument</Permissions>
    <VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
        <Hosts>
            <Host xsi:type="Workbook">
                <DesktopFormFactor>
                    <GetStarted>
                        <Title resid="Contoso.GetStarted.Title"/>
                        <Description resid="Contoso.GetStarted.Description"/>
                        <LearnMoreUrl resid="Contoso.GetStarted.LearnMoreUrl"/>
                    </GetStarted>
                    <FunctionFile resid="Contoso.DesktopFunctionFile.Url" />
                    <ExtensionPoint xsi:type="PrimaryCommandSurface">
                        <OfficeTab id="TabHome">
                            <Group id="Contoso.Group1">
                                <Label resid="Contoso.Group1Label" />
                                <Icon>
                                    <bt:Image size="16" resid="Contoso.tpicon_16x16" />
                                    <bt:Image size="32" resid="Contoso.tpicon_32x32" />
                                    <bt:Image size="80" resid="Contoso.tpicon_80x80" />
                                </Icon>
                                <Control xsi:type="Button" id="Contoso.TaskpaneButton">
                                    <Label resid="Contoso.TaskpaneButton.Label" />
                                    <Supertip>
                                        <Title resid="Contoso.TaskpaneButton.Label" />
                                        <Description resid="Contoso.TaskpaneButton.Tooltip" />
                                    </Supertip>
                                    <Icon>
                                        <bt:Image size="16" resid="Contoso.tpicon_16x16" />
                                        <bt:Image size="32" resid="Contoso.tpicon_32x32" />
                                        <bt:Image size="80" resid="Contoso.tpicon_80x80" />
                                    </Icon>
                                    <Action xsi:type="ShowTaskpane">
                                        <TaskpaneId>ButtonId1</TaskpaneId>
                                        <SourceLocation resid="Contoso.Taskpane.Url" />
                                    </Action>
                                </Control>
                            </Group>
                        </OfficeTab>
                    </ExtensionPoint>
                </DesktopFormFactor>
            </Host>
        </Hosts>
        <Resources>
            <bt:Images>
                <bt:Image id="Contoso.tpicon_16x16" DefaultValue="https://localhost:3000/assets/icon-16.png" />
                <bt:Image id="Contoso.tpicon_32x32" DefaultValue="https://localhost:3000/assets/icon-32.png" />
                <bt:Image id="Contoso.tpicon_80x80" DefaultValue="https://localhost:3000/assets/icon-80.png" />
            </bt:Images>
            <bt:Urls>
                <bt:Url id="Contoso.Taskpane.Url" DefaultValue="https://localhost:3000/index.html" />
                <bt:Url id="Contoso.GetStarted.LearnMoreUrl" DefaultValue="https://go.microsoft.com/fwlink/?LinkId=276812" />
                <bt:Url id="Contoso.DesktopFunctionFile.Url" DefaultValue="https://localhost:3000/function-file/function-file.html" />
            </bt:Urls>
            <bt:ShortStrings>
                <bt:String id="Contoso.TaskpaneButton.Label" DefaultValue="Show Taskpane" />
                <bt:String id="Contoso.Group1Label" DefaultValue="Commands Group" />
                <bt:String id="Contoso.GetStarted.Title" DefaultValue="Get started with your sample add-in!" />
            </bt:ShortStrings>
            <bt:LongStrings>
                <bt:String id="Contoso.TaskpaneButton.Tooltip" DefaultValue="Click to Show a Taskpane" />
                <bt:String id="Contoso.GetStarted.Description" DefaultValue="Your sample add-in loaded succesfully. Go to the HOME tab and click the 'Show Taskpane' button to get started." />
            </bt:LongStrings>
        </Resources>
    </VersionOverrides>
    <Requirements>
        <Sets DefaultMinVersion="1.1">
            <Set Name="WordApi" MinVersion="1.3"/>
            <Set Name="DialogApi"/>
            <Set Name="ImageCoercion"/>
        </Sets>
    </Requirements>
</OfficeApp>

person Jacob Brown    schedule 17.07.2018    source источник
comment
можешь поделиться своим манифестом? элемент требований должен быть в порядке в элементе officeApp. Пример: ‹Требования› ‹Sets DefaultMinVersion=1.1› ‹Set Name=WordApi MinVersion=1.3/› ‹Set Name=DialogApi/› ‹Set Name=ImageCoercion/› ‹/Sets› ‹/Requirements›   -  person Juan Balmori    schedule 17.07.2018
comment
Я добавил сбойный манифест. Это просто манифест, сгенерированный generator-office, с раскомментированным SupportUrl и указанным вами тегом. Без тега Requirements он проходит; добавление тега Requirements приводит к сбою.   -  person Jacob Brown    schedule 17.07.2018


Ответы (1)


Последовательность элементов указана в схеме. Это не удается, потому что вы добавляете Requirements в неправильной последовательности. Вам нужно поместить раздел Requirements непосредственно перед разделом DefaultSettings:

<Hosts>
    <Host Name="Workbook" />
</Hosts>
<Requirements>
    <Sets DefaultMinVersion="1.1">
        <Set Name="WordApi" MinVersion="1.3"/>
        <Set Name="DialogApi"/>
        <Set Name="ImageCoercion"/>
    </Sets>
</Requirements>    
<DefaultSettings>
    <SourceLocation DefaultValue="https://localhost:3000/index.html" />
</DefaultSettings>
person Marc LaFleur    schedule 18.07.2018
comment
Какая? Задокументировано ли это где-нибудь в dev.office.com/reference/add-ins или рядом с ним? /манифест/офисное приложение? Ошибка валидатора, по крайней мере, очень вводит в заблуждение. Будет ли распознан мой набор требований, если я поместил его внутрь VersionOverrides, как изначально? В любом случае, спасибо за ваш ответ; Подтверждаю, работает... - person Jacob Brown; 18.07.2018
comment
Что ж, я получил письмо с запросом изменений от рецензентов AppSource, в котором сообщалось, что мне нужно добавить набор требований в мой манифест, поэтому похоже, что добавление этого в раздел VersionOverrides не работает. - person Jacob Brown; 18.07.2018
comment
Я не уверен, что/где это может быть задокументировано. Я использовал определение схемы для определения последовательности. - person Marc LaFleur; 19.07.2018
comment
Спасибо еще раз. URL-адрес в XML-манифесте не перенаправляет на XML XSD, поэтому вот ссылка на случай, если она кому-то еще понадобится: msdn.microsoft.com/en-us/library/dn585105(v=office.12).aspx. - person Jacob Brown; 19.07.2018
comment
У нас есть рабочий элемент для добавления информации о последовательности в документацию манифеста. К сожалению, нам приходится откладывать его для более приоритетных задач. - person Rick Kirkham; 20.07.2018
comment
это не задокументировано, но это работает для меня - person Konstantinos Cheilakos; 16.12.2020