制作在部署时实际工作的 Office 365 加载项清单



我们是一个Microsoft合作伙伴(尽管我们从未从中获得任何价值(。我们有桌面办公 VSTO 插件,用于对我们出售给政府的文档进行分类,但由于其 365 云推送而转移到在线。清单生成过程非常烦人。以前工作的清单将停止任意工作。坦率地说,我们发现Office 365插件开发过程令人失望。处理这个堆栈就像一个冷漠和不适的黑洞。这让我想起了 2000 年尝试在服务器上编译我的 C 程序并得到晦涩的错误,不知道出了什么问题。如果我是负责人,我会建议我们的管理层放弃这个堆栈并寻找其他东西出售,因为这不值得头痛。我们正在与多个开发人员和QA一起流血,试图找出为什么一团xml不起作用。

我们查看了 yeoman 发电机的输出,并试图将其与我们自己的输出进行比较,但没有看到太大差异。我们不断收到随机的 1300X 错误(根据我们所在的租户而变化(。 看完这里的代码 https://github.com/OfficeDev/Office-Addin-Scripts 我不禁嘲笑你的愚蠢。您错误地选择了配置(清单(而不是代码。然后,您进行了一堆手动编码的xml处理,而不是创建通用的基于XSD的模式编辑工具(该工具以前显然存在,但现在不存在(。

可是。我知道您正在将内部问题导出到平台用户身上,但是我需要销售软件,当我无法部署我们的插件以便我们可以对其进行测试时,我无法这样做。清单在手动插入以进行调试时有效,但在部署时不起作用。什么给?

谁能告诉我这个前景清单有什么问题?为什么不部署?

编辑以回复评论: 当我代表他们发布此信息时,请耐心等待我从我们的IT人员那里收集信息,因为他们感到沮丧,但由于以前的不良经历等原因,他们也不愿在这里发布。清单存在许多问题。单词与前景的错误是不同的。有时我们会收到没有信息的验证错误(即使插件通过了验证工具(。其他时候它扔了 13004(如果我没记错的话(。我怀疑验证工具在部署之前不会完全执行 URL 检查。缺少的帮助 URL 也扔了我们。我将采用我们拥有的最新清单,并将它们与我提供的示例进行比较,并将其与下面的答案进行比较。看起来他们经过大量的试验和错误最终让它工作......

<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="MailApp">
<Id>22222222-1111-1111-1111-11111111ABCD</Id>
<Version>1.0.0.0</Version>
<ProviderName>Banana</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Banana Classifier">
<Override Locale="fr-CA" Value="Classifieur Banana" />
<Override Locale="fr-FR" Value="Classifieur Banana" />
</DisplayName>
<Description DefaultValue="Fruit Banana Classifier">
<Override Locale="fr-CA" Value="Classifieur Banana de Fruit" />
<Override Locale="fr-FR" Value="Classifieur Banana de Fruit" />
</Description>
<IconUrl DefaultValue="https://localhost:3000/assets/Banana_32.png" />
<HighResolutionIconUrl DefaultValue="https://localhost:3000/assets/Banana_80.png" />
<SupportUrl DefaultValue="https://www.Fruitsolutions.com/" />
<AppDomains>
<AppDomain>https://login.microsoftonline.com/</AppDomain>
<AppDomain>https://localhost:3000/</AppDomain>
<AppDomain>https://www.Fruitsolutions.com/</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.1" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://localhost:3000/index.html" />
<RequestedHeight>450</RequestedHeight>
</DesktopSettings>
</Form>
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="https://localhost:3000/index.html" />
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteMailbox</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit" />
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" />
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.3">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Fruit.DesktopFunctionFile.Url" />
<ExtensionPoint xsi:type="CustomPane">
<RequestedHeight>450</RequestedHeight>
<SourceLocation resid="Fruit.Taskpane.Url" />
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" />
</Rule>
</ExtensionPoint>
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup">
<Label resid="Fruit.Group1Label" />
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="Fruit.TaskpaneButton.Label" />
<Supertip>
<Title resid="Fruit.TaskpaneButton.Label" />
<Description resid="Fruit.TaskpaneButton.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Fruit.tpicon_16x16" />
<bt:Image size="32" resid="Fruit.tpicon_32x32" />
<bt:Image size="80" resid="Fruit.tpicon_80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Fruit.Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Fruit.tpicon_16x16" DefaultValue="https://localhost:3000/assets/Banana_16.png" />
<bt:Image id="Fruit.tpicon_32x32" DefaultValue="https://localhost:3000/assets/Banana_32.png" />
<bt:Image id="Fruit.tpicon_80x80" DefaultValue="https://localhost:3000/assets/Banana_80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="Fruit.Taskpane.Url" DefaultValue="https://localhost:3000/index.html" />
<bt:Url id="Fruit.GetStarted.LearnMoreUrl" DefaultValue="https://www.Fruitsolutions.com/" />
<bt:Url id="Fruit.DesktopFunctionFile.Url" DefaultValue="https://localhost:3000/function-file/function-file.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="Fruit.TaskpaneButton.Label" DefaultValue="Banana Classifier">
<bt:Override Locale="fr-CA" Value="Classifieur Banana" />
<bt:Override Locale="fr-FR" Value="Classifieur Banana" />
</bt:String>
<bt:String id="Fruit.Group1Label" DefaultValue="Fruit">
<bt:Override Locale="fr-CA" Value="Fruit" />
<bt:Override Locale="fr-FR" Value="Fruit" />
</bt:String>
<bt:String id="Fruit.GetStarted.Title" DefaultValue="Fruit Banana Classifier">
<bt:Override Locale="fr-CA" Value="Classifieur Banana de Fruit" />
<bt:Override Locale="fr-FR" Value="Classifieur Banana de Fruit" />
</bt:String>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="Fruit.TaskpaneButton.Tooltip" DefaultValue="Click to Show the Fruit Banana Classifier">
<bt:Override Locale="fr-CA" Value="Cliquer pour afficher le Classifieur Banana" />
<bt:Override Locale="fr-FR" Value="Cliquer pour afficher le Classifieur Banana" />
</bt:String>
<bt:String id="Fruit.GetStarted.Description" DefaultValue="The Fruit Banana Classifier Add-in loaded successfully. Click the 'Banana Classifier' button to get started.">
<bt:Override Locale="fr-CA" Value="Le complément Classifieur Banana a été chargé avec succès.  Veuillez cliquer sur le bouton 'Classifieur Banana' pour débuter." />
<bt:Override Locale="fr-FR" Value="Le complément Classifieur Banana a été chargé avec succès.  Veuillez cliquer sur le bouton 'Classifieur Banana' pour débuter." />
</bt:String>
</bt:LongStrings>
</Resources>
<WebApplicationInfo>
<Id>22222222-1111-1111-1111-11111111ABCD</Id>
<Resource>api://localhost:3000/Banana_CLASSIFIER_AZURE_APPLICATION_ID</Resource>
<Scopes>
<Scope>Files.ReadWrite.All</Scope>
<Scope>Mail.Read</Scope>
<Scope>Mail.ReadWrite</Scope>
<Scope>Mail.ReadWrite.Shared</Scope>
<Scope>offline_access</Scope>
<Scope>openid</Scope>
<Scope>profile</Scope>
<Scope>Sites.ReadWrite.All</Scope>
<Scope>User.Read</Scope>
</Scopes>
</WebApplicationInfo>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>

我把你上面的清单安装到一个交换帐户,它报告了ID无效,资源需要在你的基本网址下(水果解决方案(。我更正了这些(使用虚拟值(,然后将其上传到帐户,并将按钮加载到 Outlook。

<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="MailApp">
<Id>22222222-1111-1111-1111-11111111ABCD</Id>
<Version>1.0.0.0</Version>
<ProviderName>Banana</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Banana Classifier">
<Override Locale="fr-CA" Value="Classifieur Banana" />
<Override Locale="fr-FR" Value="Classifieur Banana" />
</DisplayName>
<Description DefaultValue="Fruit Banana Classifier">
<Override Locale="fr-CA" Value="Classifieur Banana de Fruit" />
<Override Locale="fr-FR" Value="Classifieur Banana de Fruit" />
</Description>
<IconUrl DefaultValue="https://localhost:3000/assets/Banana_32.png" />
<HighResolutionIconUrl DefaultValue="https://localhost:3000/assets/Banana_80.png" />
<SupportUrl DefaultValue="https://www.Fruitsolutions.com/" />
<AppDomains>
<AppDomain>https://login.microsoftonline.com/</AppDomain>
<AppDomain>https://localhost:3000/</AppDomain>
<AppDomain>https://www.Fruitsolutions.com/</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.1" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://localhost:3000/index.html" />
<RequestedHeight>450</RequestedHeight>
</DesktopSettings>
</Form>
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="https://localhost:3000/index.html" />
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteMailbox</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit" />
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" />
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.3">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Fruit.DesktopFunctionFile.Url" />
<ExtensionPoint xsi:type="CustomPane">
<RequestedHeight>450</RequestedHeight>
<SourceLocation resid="Fruit.Taskpane.Url" />
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" />
</Rule>
</ExtensionPoint>
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup">
<Label resid="Fruit.Group1Label" />
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="Fruit.TaskpaneButton.Label" />
<Supertip>
<Title resid="Fruit.TaskpaneButton.Label" />
<Description resid="Fruit.TaskpaneButton.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Fruit.tpicon_16x16" />
<bt:Image size="32" resid="Fruit.tpicon_32x32" />
<bt:Image size="80" resid="Fruit.tpicon_80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Fruit.Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Fruit.tpicon_16x16" DefaultValue="https://www.Fruitsolutions.com/assets/Banana_16.png" />
<bt:Image id="Fruit.tpicon_32x32" DefaultValue="https://www.Fruitsolutions.com/assets/Banana_32.png" />
<bt:Image id="Fruit.tpicon_80x80" DefaultValue="https://www.Fruitsolutions.com/assets/Banana_80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="Fruit.Taskpane.Url" DefaultValue="https://www.Fruitsolutions.com/index.html" />
<bt:Url id="Fruit.GetStarted.LearnMoreUrl" DefaultValue="https://www.Fruitsolutions.com/" />
<bt:Url id="Fruit.DesktopFunctionFile.Url" DefaultValue="https://www.Fruitsolutions.com/function-file/function-file.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="Fruit.TaskpaneButton.Label" DefaultValue="Banana Classifier">
<bt:Override Locale="fr-CA" Value="Classifieur Banana" />
<bt:Override Locale="fr-FR" Value="Classifieur Banana" />
</bt:String>
<bt:String id="Fruit.Group1Label" DefaultValue="Fruit">
<bt:Override Locale="fr-CA" Value="Fruit" />
<bt:Override Locale="fr-FR" Value="Fruit" />
</bt:String>
<bt:String id="Fruit.GetStarted.Title" DefaultValue="Fruit Banana Classifier">
<bt:Override Locale="fr-CA" Value="Classifieur Banana de Fruit" />
<bt:Override Locale="fr-FR" Value="Classifieur Banana de Fruit" />
</bt:String>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="Fruit.TaskpaneButton.Tooltip" DefaultValue="Click to Show the Fruit Banana Classifier">
<bt:Override Locale="fr-CA" Value="Cliquer pour afficher le Classifieur Banana" />
<bt:Override Locale="fr-FR" Value="Cliquer pour afficher le Classifieur Banana" />
</bt:String>
<bt:String id="Fruit.GetStarted.Description" DefaultValue="The Fruit Banana Classifier Add-in loaded successfully. Click the 'Banana Classifier' button to get started.">
<bt:Override Locale="fr-CA" Value="Le complément Classifieur Banana a été chargé avec succès.  Veuillez cliquer sur le bouton 'Classifieur Banana' pour débuter." />
<bt:Override Locale="fr-FR" Value="Le complément Classifieur Banana a été chargé avec succès.  Veuillez cliquer sur le bouton 'Classifieur Banana' pour débuter." />
</bt:String>
</bt:LongStrings>
</Resources>
<WebApplicationInfo>
<Id>22222222-1111-1111-1111-11111111ABCD</Id>
<Resource>https://www.Fruitsolutions.com/Banana_CLASSIFIER_AZURE_APPLICATION_ID</Resource>
<Scopes>
<Scope>Files.ReadWrite.All</Scope>
<Scope>Mail.Read</Scope>
<Scope>Mail.ReadWrite</Scope>
<Scope>Mail.ReadWrite.Shared</Scope>
<Scope>offline_access</Scope>
<Scope>openid</Scope>
<Scope>profile</Scope>
<Scope>Sites.ReadWrite.All</Scope>
<Scope>User.Read</Scope>
</Scopes>
</WebApplicationInfo>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>

最新更新