原创

简单使用Inno steup 封装Excel VSTO插件

一、背景

1、 使用Advanced Installer 来封装Excel VSTO插件相对使用Inno来说比较傻瓜操作,缺点是该软件是收费的。使用评估版本封装的安装包也会有评估版字样。
2、 直接使用VScode生成的包部署起来容易遇到一些问题,而且卸载起来相对来说比较麻烦

二、什么是Inno

Inno Setup 是一个免费的安装制作软件(开源)

三、准备工作

1、准备好相关插件
2、准备一个简单的窗口程序(可以直接使用Inno中给的样例程序)

四、封装注意点

[封装文件]


[Files]
Source: "D:\software\newPackerExcel\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion ;这里封装的是一个和插件没有关系的窗口程序
Source: "E:\Study\WndowsCode\Exceltools\Exceltools\bin\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;这个放的是Excel插件内容,该内容是由VSCODE生成的

[注册表] 重点

Root: HKCU; Subkey: "Software\Microsoft\Office\Excel\Addins\exceltools";ValueType: string; ValueName: "Description"; ValueData:"exceltools" ; Flags: uninsdeletekey

Root: HKCU; Subkey: "Software\Microsoft\Office\Excel\Addins\exceltools";ValueType: string; ValueName: "FriendlyName"; ValueData:"exceltools" ; Flags: uninsdeletekey

Root: HKCU; Subkey: "Software\Microsoft\Office\Excel\Addins\exceltools";ValueType: dword; ValueName: "LoadBehavior"; ValueData:3 ; Flags: uninsdeletekey

Root: HKCU; Subkey: "Software\Microsoft\Office\Excel\Addins\exceltools";ValueType: string; ValueName: "Manifest"; ValueData:"{app}\Exceltools.vsto|vstolocal" ; Flags: uninsdeletekey 

说明:1、这个将插件相关信息写到注册表,ValueData:"{app}\Exceltools.vsto|vstolocal" 这个是决定相关插件的位置取到插件的位置。
2、Flags: uninsdeletekey 这个标识符是用于卸载插件可以清除相关注册表

五、注意

1、本次封装是比较简单的excel插件,没有对相关环境封装,对于复杂情况,请读者自行摸索
2、窗口程序没有的话,只是会影响用户体验,用户点击图标会出现找不到程序,可以自己封装一些简单窗口提示类型的程序
C++
笔记