如何使用网络共享的方式发布wordaddin

Posted by Run-dream Blog on May 25, 2021

生成DEMO

  1. 安装VSStudio 选中 Offce/Share Point开发

  2. 新建项目 选择类型 Word Web 外接程序

  3. 为测试请求服务端接口是否可行,修改 Home.js

    const xhr = new XMLHttpRequest();
    xhr.open('get', '/api/external/test', false);
    xhr.send();
       
    body.insertText(xhr.responseText, Word.InsertLocation.end);
    

发布DEMO

  1. 打开 Manifest 文件
  2. 点击VSStudio上的生成 -> 发布
  3. 部署Web项目 选择部署到文件夹
  4. 打包外接程序 地址填web服务地址 会生成一个OfficeAppManifest文件夹
  5. 将第4步得到的文件夹 复制到生成Web项目的文件夹下

部署web站点

我这里使用nginx 代理来处理整合web资源

server {
    listen 9999;
    // 省略不重要的部分
    
    location / {
        root ${发布的Web项目的目录};
    }
    
    location ^~ /api/ {
        proxy_pass ${后端服务的地址}
    }
}

共享文件夹

比较坑爹的地方是Win10默认关闭了共享文件夹的功能,需要按照下面的方式开启

  1. 小娜搜索 services 查看以下服务是否开启
    • Computer Browser;
    • DHCP Client; DNS Client;
    • Function Discovery Provider Host;
    • Function Discovery Resource Publication;
    • Network Connections;
    • Network Location Awareness;
    • Remote Procedure Call (RPC);
    • Server;
    • SSDP Discovery;
    • TCP/IP Netbios helper;
    • UPnP Device Host;
    • Workstation.

    将未开启的服务改为自动启动

  2. 然后发现缺少 Computer Browser 服务,小娜搜索 windows 功能 ,在选项里启用
    • SMB 1.0/CIFF 文件共享支持
  3. 重启电脑

然后将发布的文件夹设置为贡献文件夹,记录下生成的网络路径

使用注册表脚本配置信任

  1. 在文本编辑器中,创建名为 TrustNetworkShareCatalog.reg 的文件。

  2. 在文件中添加以下内容:

    Windows Registry Editor Version 5.00
       
    [HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\WEF\TrustedCatalogs\{-random-GUID-here-}]
    "Id"="{-random-GUID-here-}"
    "Url"="\\\\-share-\\-folder-"
    "Flags"=dword:00000001
    
  3. 在众多在线 GUID 生成工具中选用一个(例如 GUID 生成器)来生成一个随机 GUID,并在 TrustNetworkShareCatalog.reg 文件中,将 两个位置 的“-random-GUID-here-”字符串都替换为 GUID。 (应保留右侧 {} 符号)。

  4. Url 值替换为你之前共享的文件夹的完整网络路径。 (请注意,URL 中的所有 \ 字符都必须成双出现。)

  5. 关闭所有Office应用

  6. 运行 TrustNetworkShareCatalog.reg

在Office中加载WebAddIn

  1. 打开文档
  2. 激活编辑状态
  3. 插入 -> 我的加载项 即可使用发布的插件

参考文档

  1. 生命周期
  2. 发布
  3. win10网络共享