我目前正在开发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中,则会打开该文件而不会抱怨。很奇怪。
答案 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/SFTP,continuous integration(VS Team Services,GitHub或BitBucket)或甚至local Git repository发布。
答案 1 :(得分:1)
以下是有人想知道的修复:
我的初始侧载加载项创建了一个错误,导致Word创建错误通知,该错误通知在 Word后面弹出,然后阻止所有后续加载项的执行。 在加载项再次运行之前,必须关闭所有错误弹出窗口
所以实际上我的侧载加载项被破坏了,这导致所有后续的加载项无法工作。
有点愚蠢的错误,但是头脑无力。