无法在Windows上将加载项侧载到MS Word中

时间:2017-08-31 08:31:35

标签: office-js

我目前正在开发Microsoft Word Web Add-in

由于我使用的是Mac,因此我使用Office 365订阅下载了Windows 10 VM并安装了Office。

我可以让Word加载项在Office 365和Word for Mac上运行,但不能在Word 2016 for Windows上运行。

我无法在Windows 10上运行Word 2016来运行任何加载项,无论是我自己编写的加载项,还是从商店下载的加载项。 Word始终显示加载框架" loading"然后就在那里;加载项永远不会加载。

我没有获得附加调试器的菜单选项,并且没有明显的错误消息。

在VM上运行加载项是否有一些限制?我从哪里开始调试这个?

修改

我刚注意到我自己的侧载加载项在弹出 对话框中抛出错误,该对话框在 Word后面打开然后阻止word打开更多加载项。因此,如果我关闭弹出 对话框,那么存储中的加载项将按预期工作。但是,我无法自行加载我自己的插件。

我得到的错误是

  

找不到‘file://msedgewin10/manifest/boilerplate/home.html?_host_Info=Word$Win32$16.01$en-US’。确保路径或Internet地址正确无误。

但是,如果我将此地址粘贴到IE中,则会打开该文件而不会抱怨。很奇怪。

2 个答案:

答案 0 :(得分:1)

我不建议使用file:// uris进行侧载。在Office for Windows中使用SMB Share method通常更容易。当我在Mac上进行开发时,我倾向于从Mac共享wef目录,因此我的清单更改同时显示在Mac和Windows中。

弹出问题与众不同。这可能是因为您使用JavaScript打开弹出窗口(即window.open(...))。使用此方法结果是非常奇怪的行为,因为Office利用加载项的浏览器和浏览器引擎的数量。

对于弹出窗口,您应该始终使用Office.js附带的Dialog API。此API经过定制,可在所有受支持的Office环境(Windows,Mac,iOS,Android,Chrome,Firefox,Safari,IE,Edge)中使用。当您希望在加载项和对话框之间进行父/子通信时,它尤其有用;在Mac或Windows上不容易完成的事情,其中​​弹出窗口在与加载项完全不同的浏览器实例中运行。

开发加载项时的一个关键提示是注册Office 365 Developer Program。这使您可以访问免费的Office 365 Developer租户。虽然这看起来有点过分,但它会大大简化您的生活,因为它允许您使用O365的Centralized Deployment功能在多个Office客户端(Windows,Mac,在线等)上即时部署清单。在开发/测试方面,它可以节省大量时间。它还对您的清单进行了一些轻量级验证,可以捕获一些常见错误。

另一个提示是使用Azure Web Apps托管加载项。这为您提供了开箱即用的公共URL和SSL证书(Office是所有加载项都需要SSL)。最棒的是,您最多可以运行10 Azure Web Apps for free。我通常将我的代码推送到我的加载项构建过程的一部分。 Azure支持通过FTP/SFTPcontinuous integration(VS Team Services,GitHub或BitBucket)或甚至local Git repository发布。

答案 1 :(得分:1)

以下是有人想知道的修复:

我的初始侧载加载项创建了一个错误,导致Word创建错误通知,该错误通知在 Word后面弹出,然后阻止所有后续加载项的执行。 在加载项再次运行之前,必须关闭所有错误弹出窗口

所以实际上我的侧载加载项被破坏了,这导致所有后续的加载项无法工作。

有点愚蠢的错误,但是头脑无力。