正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
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文件,如此,安装过程就会很流畅,直接上脚本:
- //监测Mysql是否安装
- RegDBSetDefaultRoot(HKEY_CURRENT_USER);
- if(RegDBKeyExist("SOFTWARE\\MySQL AB")<0) then
- //先静默安装Mysql 确保系统有此软件
- svMsiexec = WINSYSDIR^"msiexec.exe";
- svMsiPackage = SETUPEXEDIR^"mysql-installer-community-5.6.17.0.msi";
- LongPathToQuote ( svMsiPackage, TRUE );
- svParam = "/i " + svMsiPackage+" /qn";
- LaunchAppAndWait(svMsiexec,svParam,WAIT);
- //执行Mysql安装
- svParam = "/f " + svMsiPackage;
- if(LaunchAppAndWait(svMsiexec,svParam,LAAW_OPTION_WAIT)<0)then
- MessageBox("安装MySQL失败",INFORMATION);
- endif;
- endif;
复制代码
msiexec具体的参数命令可以自在cmd中查看,详细的参数可以在cmd中看到,我简单说一下用到的:
msiexec /i c:*.msi /qn 指静默安装msi文件
msiexec /f c:*.msi 指界面安装(原来msi的安装界面)
InstallShield制作安装包功能还是很强大的,有很多功能通过脚本都是可以实现的。 |