2016年的Outlook加载项ProPlus MSI版本(MSO 16.0.4549.1000)为displayDialogAsync提供“权限被拒绝”错误

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (18)

我正在开发一个新的Outlook加载项,它使用displayDialogAsync进行身份验证。我们有几个不同的客户端版本。它适用于Windows for Outlook 2016和Windows 365上的Office 365 ProPlus即点即用版本1808。但对于Windows的Office 2016 ProPlus MSI版本(MSO 16.0.4549.1000),它会给出错误“Permission Denied”。

对话框API要求设置页面位于https://docs.microsoft.com/en-us/office/dev/add-ins/reference/requirement-sets/dialog-api-requirement-sets对于Office 2016或更高版本的Windows(使用Build 16.0.4390.1000或更高版本的一次性购买,它应该工作。我们的构建版本显然较晚,但我们仍然遇到了这个错误。

我还验证了这不是由于清单中的AppDomains。我已将我尝试在对话框中打开的域添加到AppDomains。

提问于
用户回答回答于

当Outlook桌面中的API不可用时,它可以返回“Permission Denied”错误,这是错误的错误消息。在这种情况下,它只是意味着API不可用。

由于您的Outlook版本高于4390,这可能是因为displayDialog API还需要更新版本的OSF客户端DLL。通过Microsoft Update应用Office更新时,应自动更新所有Office DLL。如果手动应用更新,则某些Office DLL可能不包含在更新中。如果用户有意想单独应用更新,则此页面会列出最新的Office 2016更新文件(查找osfclient-x-none更新,其中包含displayDialog API所需的DLL)。

在您的加载项中,您还可以执行两项操作来检测此案例。首先,我们建议使用Office.context.requirements.isSetSupported API来检查Outlook客户端是否支持“邮箱”要求集1.4(这是包含displayDialog API的Outlook要求集)。这将检查API运行所需的所有内容是否可用。

如果您的加载项需要API,则可以通过更新加载项清单中支持的最低要求集来避免在加载项中添加条件。这意味着加载项在不支持该要求集的Outlook客户端中将不可用。

扫码关注云+社区

领取腾讯云代金券