我正在开发一个新的Outlook加载项,它使用displayDialogAsync进行身份验证。我们有几种不同的客户版本。它在Mac上的Outlook for Mac 2016和Windows上的Office 365 ProPlus即点即用版本1808上运行良好。但是在Windows的Office 2016 ProPlus MSI版本(MSO 16.0.4549.1000)上,它显示错误“权限被拒绝”。
对话框API要求集页面位于https://docs.microsoft.com/en-us/office/dev/add-ins/reference/requirement-sets/dialog-api-requirement-sets上,表示适用于Windows上的Office 2016或更高版本 (一次性购买)Build 16.0.4390.1000或更高版本,它应该可以正常工作。我们的构建版本显然是稍后发布的,但仍然会出现该错误。
我还验证了这不是由于清单中的AppDomains。我已将要在对话框中打开的域添加到AppDomains中。
答案 0 :(得分:0)
当Outlook桌面中的API不可用时,它可以返回“权限被拒绝”错误,这是错误的错误消息。在这种情况下,这仅意味着该API不可用。
由于您的Outlook版本高于4390,因此出现此原因的原因很可能是因为displayDialog API还需要OSF客户端DLL的更新版本。通过Microsoft Update应用Office更新时,所有Office DLL应该一起自动更新。在手动应用更新的情况下,某些Office DLL可能未包含在更新中。如果用户有意要单独应用更新,则此页面列出latest Office 2016 update files(查找 osfclient-x-none 更新,其中包含displayDialog API所需的DLL)。>
在外接程序中,您还可以执行以下两项操作来检测这种情况。首先,我们建议使用Office.context.requirements.isSetSupported API来检查Outlook客户端是否支持“邮箱”要求集1.4(这是包含displayDialog API的Outlook要求集)。这将检查API运行所需的一切是否可用。
如果您的加载项需要API,则可以通过更新add-in manifest中支持的最低要求集来避免在加载项中添加条件。这意味着该加载项将在不支持该要求集的Outlook客户端中不可用。