innoSetup是一款开源的打包软件,功能强大。我在实际工作中遇到一个需求,需要使用innosetup来构建Outlook插件安装包,但是资源很少,后来在github上找到相关的项目
VstoAddinInstaller
,可以用来打包vsto文件。下面简要介绍一下。
首先需要的环境是
innosetup软件
、
InnoSetup Download Plugin
(用来下载插件在安装的时候缺少的环境)、Visual Studio with Visual Studio Tools for Office (VSTO)。然后创建相关的目录。
你的解决方案文件夹
├── deploy <-- 放置打包脚本的文件夹,随意命名
│ ├── make-installer.iss <-- 主要的innosetup执行脚本,随意命名
│ ├── VstoAddinInstaller <-- 存放其他执行脚本的文件夹
│ │ ├── config-dist <-- 脚本文件的模板
│ │ │ ├── make-installer.dist.iss
│ │ │ └── ...
│ │ └── ...
│ ├── setup-files <-- 额外添加的文件,例如证书等
│ │ └── ...
│ └── releases <-- 打包完成的安装文件存放位置
│ └── ...
├── 你的项目所在文件夹
│ ├── bin
│ │ ├── Debug
│ │ │ ├── YourProject.vsto
│ │ │ └── ...
│ │ └── Release
│ │ ├── YourProject.vsto
│ │ └── ...
│ ├── YourProject.csproj
│ └── ...
├── VERSION.TXT <-- 安装包的编号(选填)
└── ...
将config-dist文件中的make-installer.dist.iss 文件复制出去,根据要打包的插件类型(Outlook、excel、word等)进行编写,在下载的项目文件中的example文件夹中有相关的例子可以作为参考。完成编写后直接执行就可以了,便可以看到打包后的安装包了。
但是还有几点需要注意:我在安装完InnoSetup Download Plugin插件后,运行脚本的时候报错找不到idp.iss文件,而且在相关文件中也未找到,所以在vsto-installer.iss文件中将#include <idp.iss>改为#include “VstoAddinInstaller\idp.iss”,并将InnoSetup Download Plugin中的Unicode、ASCII文件夹复制到VstoAddinInstaller文件夹下。
目前最新版innosetup中暂无汉语支持,而且安装时默认语言还会有德语,在vsto-installer.iss的language选项中将Name de这行删除,另外需要在Inc文件夹下的Message.iss文件中将de开头的脚本注释掉。
更多的构建细节还在研究中,欢迎批评交流。