杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2224|回复: 0

InstallShield使用脚本打包安装msi应用

[复制链接]
发表于 2018-5-24 15:25:00 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最近在做打包安装程序,要把.NET 4.0、Mysql、数据库脚本打包进去,在安装过程中顺序执行,.NET4.0是exe文件,数据库脚本用bat执行一点问题都没有,奇怪地方就是msi文件(微软格式的安装包)在InstallShield中,用命令无法启动,要么就是报错,这个问题折磨我了很久,最终找到了解决办法,和大家分享一下:

方法一:(最普遍的做法,但是会多弹出一个黑框,整体感觉不流畅)
新建test.bat文件,用命令启动msi文件:start "exe"  c:\123.msi

InstallShield中直接启动bat就可以了:LaunchAppAndWait(SETUPEXEDIR^"test.bat",“”,LAAW_OPTION_WAIT)

方法二:(本人推荐这种方法)
msi安装文件如果用命令行msiexec  /i去调用,卸载/安装程序中必须要有这个文件,才能执行,如果检测没有对应文件,就会报错,InstallShield安装msi文件我的思路是先静默安装,在执行msi文件,如此,安装过程就会很流畅,直接上脚本:

  1. //监测Mysql是否安装

  2.         RegDBSetDefaultRoot(HKEY_CURRENT_USER);
  3.        if(RegDBKeyExist("SOFTWARE\\MySQL AB")<0) then  
  4.   //先静默安装Mysql 确保系统有此软件
  5.   svMsiexec = WINSYSDIR^"msiexec.exe";   
  6. svMsiPackage = SETUPEXEDIR^"mysql-installer-community-5.6.17.0.msi";
  7. LongPathToQuote ( svMsiPackage, TRUE );
  8. svParam = "/i " + svMsiPackage+" /qn";   
  9. LaunchAppAndWait(svMsiexec,svParam,WAIT);
  10. //执行Mysql安装
  11. svParam = "/f " + svMsiPackage;   
  12. if(LaunchAppAndWait(svMsiexec,svParam,LAAW_OPTION_WAIT)<0)then
  13.           MessageBox("安装MySQL失败",INFORMATION);
  14. endif;   

  15. endif;
复制代码


msiexec具体的参数命令可以自在cmd中查看,详细的参数可以在cmd中看到,我简单说一下用到的:

msiexec /i  c:*.msi   /qn  指静默安装msi文件

msiexec /f c:*.msi          指界面安装(原来msi的安装界面)

InstallShield制作安装包功能还是很强大的,有很多功能通过脚本都是可以实现的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-14 18:28 , Processed in 0.102347 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表