官方文档提供了详细的部署方案说明。

其中包括ClickOnceWindows Installer,本文演示的是如何通过一段小BAT脚本来安装,它可以更方便的嵌入你的安装程序中。

手动安装

上文中,使用Visual Studio 2017启动调试,即可看到PowerPoint中已嵌入了插件。这是因为Visiual Studio帮我们写入了一些注册表项。

即是PowerPoint在启动时,会检测相应的注册表项,来加载插件。

现在我们来手动部署。

  1. 打开注册表项

    1
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins

    HKEY_CURRENT_USER表示仅部署在当前用户下。

  2. 在Addins下新建项,名字假设叫TestAddin

  3. 在TestAddin下新建字符串值 Description,填入该插件的描述

  4. 在TestAddin下新建字符串值 FriendlyName, 填入更友好的描述

  5. 在TestAddin下新建DWORD值 LoadBehavior,填入 3

    3 表示指定在启动时加载 VSTO 外接程序。更详细的信息请参阅这里

  6. 在TestAddin下新建字符串值 Manifest,填入插件所在地址

    1
    file:///D:/PowerPointAddInDemo/PowerPointAddInDemo.vsto|vstolocal
  7. 注册表项添加完成,大概长这样:

  8. 注册表添加完毕,我们现在启动Microsoft PowerPoint,出现了下面的提示框

    这是因为用户必须在安装VSTO时响应信任提示。

  9. 如何向VSTO授予信任?官方文档有详尽的介绍。我们这里采取其中最简单的一种:

    将VSTO安装到用户计算机上的 Program Files 目录。

    我们修改TestAddin的Manifest的值为:

    1
    file:///C:/Program Files (x86)/PowerPointAddInDemo/PowerPointAddInDemo.vsto|vstolocal

    并且移动插件的位置到Program Files下。

  10. 安装完毕。

安装脚本

我们将上面的步骤用批处理来实现,大概长这样:

1
2
3
4
5
6
@echo off
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins\TestAddin /f
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins\TestAddin /v Description /t REG_SZ /d "Test Addin" /f
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins\TestAddin /v FriendlyName /t REG_SZ /d "My First Addin" /f
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins\TestAddin /v LoadBehavior /t REG_DWORD /d 0x00000003 /f
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins\TestAddin /v Manifest /t REG_SZ /d "file:///C:/Program Files (x86)/PowerPointAddInDemo/PowerPointAddInDemo.vsto|vstolocal" /f

卸载脚本

同样的,我们删除注册表项来卸载插件。

1
2
@echo off
reg delete HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins\TestAddin /f

使WPS可加载

在WPS的注册表项 HKEY_CURRENT_USER\SOFTWARE\kingsoft\Office\WPP\AddinsWL中添加一个字符串值即可。

1
reg add HKEY_CURRENT_USER\SOFTWARE\kingsoft\Office\WPP\AddinsWL /v TestAddin /f

卸载同理

1
reg delete HKEY_CURRENT_USER\SOFTWARE\kingsoft\Office\WPP\AddinsWL /v TestAddin /f

完整的脚本在这里.

Reference