我正在开发一个新的Outlook插件,它使用displayDialogAsync进行身份验证。我们有几个不同的客户端版本。它在Mac2016和Office365的ProPlus即点即用版本1808上运行良好。但是在用于windows的Office2016 ProPlus MSI版本(MSO16.0.4549.1000)上,它给出了错误"Permission Denied“。
对话应用程序接口要求集页面在https://docs.microsoft.com/en-us/office/dev/add-ins/reference/requirement-sets/dialog-api-requirement-sets上表示,适用于Office2016或更高版本(一次性购买)版本16.0.4390.1000或更高版本,它应该可以工作。我们的构建版本显然是较晚的,但我们仍然会遇到这个错误。
我还验证了这不是由于清单中的AppDomains造成的。我已经将试图在对话框中打开的域添加到AppDomains中。
发布于 2019-06-05 08:57:16
当某个API在Outlook Desktop中不可用时,它可能会返回"Permission Denied“错误,这是错误的错误消息。在这种情况下,它只是意味着API不可用。
由于您的Outlook版本高于4390,这可能是因为OSF还需要更新版本的displayDialog客户端DLL。当通过Microsoft Update应用Office更新时,所有Office DLL应一起自动更新。在手动应用更新的情况下,某些Office DLL可能不包含在更新中。如果用户有意单独应用更新,此页面将列出客户端(查找osfclient-x- latest Office 2016 update files更新,其中包含displayDialog应用程序接口所需的DLL)。
在您的外接程序中,您还可以执行两项操作来检测此情况。首先,我们建议使用Outlook检查Outlook客户端是否支持"Mailbox“需求集1.4 (这是包含displayDialog API的Office.context.requirements.isSetSupported需求集)。这将检查API运行所需的所有内容是否可用。
如果您的外接程序需要应用编程接口,则可以通过更新add-in manifest中支持的最低要求集来避免在外接程序中添加条件。这意味着外接程序在不支持该要求集的Outlook客户端中不可用。
https://stackoverflow.com/questions/56451242
复制相似问题