工欲善其事必先利其器
打包我们使用Advanced Installer工具
贴个下载链接,笔者亲测,可以使用
Advanced Installer 18中文破解版下载 v18.0(附破解补丁+破解教程) - zd423
1、安装好之后像这样
2、新建一个项目
3、填写配置
随便填吧,想叫啥叫啥
这里我选择用msi包作为输出,可以选择最终的产物的格式,比如exe包什么的
填写项目地址,以及输出产物的地址,如果没有文件夹的话,会自动生成的
选择VSTO
选择要打包的VSTO项目地址,选择sln文件就可以了
比如我选了一个我写的一个vsto demo
可以选择Debug(调试)或者 Release(发布)版本进行打包,我这边选择了Debug版本,你们也可以选择使用Release的(只要你们release过),跟在visual studio的使用有关。
选择打包进去的文件,选这几个就够了
选择相关的版本,我本地是2010的office,选了这几个也能用
随便填,然后选下,这个安装包是给本机当前用户安装,还是给本机所有用户安装
这个不勾
这个也不勾
因为本机环境都有了,哈哈,如果目标机有需求的话,可以勾
选择语言版本,我当然选了简体中文
添加许可协议,需要存为rtf文件,没有rtf文件的,可以先用word,然后另存为rtf文件即可
如果你只希望生成的插件给office使用,那现在就可以build了,但是我们要兼容一下wps,这样打包我们还是没法用的,因为wps找不到这个程序
点击完成,我们就新建好了一个api项目,并且进入到了这个项目页面
可以看到,这是一个,名为ExcelAddIn3的Advanced Installer项目
打开Resource(资源)里的Registry(注册表)
在什么都没有情况下,我们可以看出,这个安装包,只为office的excel下注册了加载项,没有为wps注册加载项,所以,即使这个安装包安装了,我们打开wps,也是无法找到这个加载项的
所以,我们需要知道wps的注册表结构是怎么样的,因为笔者本机电脑上安装了wps,所以我们看一下它的具体结构,我们打开cmd(快捷键Win+R)
输入regedit,回车,就打开了注册表
因为wps是金山的,所以叫kingSoft也是挺正常的,如果你的电脑没有安装wps,那应该是看不到这个kingSoft的
我们可以清晰的看到kingsoft里面的结构,wps里的所有excel相关的加载项,请写在AddinsWL里,不要被注册表吓到了,只是加个名罢了,就一个字符串而已
所以我们复制一下 kingsoft\Office\ET\AddinsWL 这个文件结构,可能随着时间的推移,wps的注册表结构变化了也不一定,请以你当前的结构为准
把这个结构,添加进我们的api项目里的注册表配置里,这样,我们打包出来的程序在安装的时候,会帮我们在目标机器上自动在这个注册表路径,填写程序名,这样wps就可以找到对应的程序
填一下结构
目前还没有结束,因为wps是要填value值的
把office下,它帮我们在Addins下写的名字复制一下,写进wps里
ok,给HKEY_CURRENT_USER也复制一份
完事,因为我只选了给当前用户安装,所以,我只改了当前用户的注册表
切回到Product information ,这个时候,就可以进行构建了
构建成功
这里可以打开我们设置的 存放产出物 的文件夹
ok,看到产出的安装包了
安装看看
可以看到我们精心写的协议
打开excel看看,虽然加载项名字叫ExcelAddIn3,但是内核还是安装文件夹下的ExcelAddIn1.vsto文件
再看wps,加载项也自动加载进来了