在自己做项目的时候,遇到一个需要打包的程序。该程序需要用到WinGraphviz插件。在项目中,所用到的插件是以msi文件安装成功的,因此将程序打包之后,移植到另外一台电脑是,需要自己手动安装该msi插件。如何实现在安装程序的时候,自动安装该插件。在查了很多资料之后,找到了如下的解决方法。程序代码如下:
[Run] Filename: "{app}\msiexec.exe";Parameters: "/i""{src}\WinGraphviz_v1.02.24.msi" Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
要运行这个程序,需要自己添加 msiexec.exe(点击下载)文件,该文件是windows下安装msi的一个文件,其中具体参数如下:
msi软件包所有安装参数如下:
msiexec /Option <Required Parameter> [Optional Parameter]
安装选项 </package | /i> <Product.msi> 安装或配置产品 /a <Product.msi> 管理安装 - 在网络上安装产品 /j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>] 播发产品 - m 播发到所有用户,u 播发到当前用户 </uninstall | /x> <Product.msi | ProductCode> 卸载产品显示选项 /quiet 安静模式,无用户交互 /passive 无从参与模式 - 只显示进程栏 /q[n|b|r|f] 设置用户界面级别 n - 无用户界面 b - 基本界面 r - 精简界面 f - 完整界面(默认值) /help 帮助信息重新启动选项 /norestart 安装完成后不重新启动 /promptrestart 提示用户重新启动(如果必要) /forcerestart 安装后总是重新启动计算机日志选项 /l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile> i - 状态消息 w - 非致命警告 e - 全部错误消息 a - 操作的启动 r - 操作特定记录 u - 用户请求 c - 初始界面参数 m - 内存不足或致命退出信息 o - 磁盘空间不足消息 p - 终端属性 v - 详细输出 x - 额外调试信息 + - 扩展到现有日志文件 ! - 每一行刷新到日志 * - 记录所有信息,除了 v 和 x 选项 /log <LogFile> 与 /l* <LogFile> 相同更新选项 /update <Update1.msp>[;Update2.msp] 应用更新 /uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode> 删除产品的更新修复选项 /f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode> 修复产品 p - 仅当文件丢失时 o - 如果文件丢失或安装了更旧的版本(默认值) e - 如果文件丢失或安装了相同或更旧的版本 d - 如果文件丢失或安装了不同版本 c - 如果文件丢失或较验和与计算的值不匹配 a - 强制重新安装所有文件 u - 所有必要的用户特定注册表项(默认值) m - 所有必要的计算机特定注册表项(默认值) s - 所有现有的快键方式(默认值) v - 从源运行并缓存本地数据包设置公共属性 [PROPERTY=PropertyValue]
转载于:https://www.cnblogs.com/Melvin-Dong/p/6729061.html
相关资源:JAVA上百实例源码以及开源项目