论坛风格切换切换到宽版
  • 3461阅读
  • 11回复

求教inno外部安装和运行库的批量安装 [复制链接]

上一主题 下一主题
离线solan
 

发帖
80
金钱
800
威望
80
只看楼主 倒序阅读 0 发表于: 2015-10-31
      我知道INNO可以在 [Files] 段用 external 安装外部文件。
但是这个文件是7z的压缩文件,比如是klin.7z,它位于安装包的边上,现在想把它直接解压到安装目录,由于压缩包文件很大(2G),解压时间长,能不能边解压边安装其他的,因为还要安装vc运行库2005、2008、2010、2012、2013、2015(运行库编译到安装包里面,没在压缩包旁边),这个也要很长时间,等全部安装好了再跳出安装完成对话框。这个脚本怎么写或者code怎么写?有几种方法?


      另外,想请教一下老虎版主,批量安装运行库2005到2015(包括32位和64位的),该如何安装和判断有无安装。网上只说某个vc的判断和安装,已经代码一大堆了,如果批量安装多个vc那不是更多啦。




离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2015-10-31
多个操作不是一定要一个接一个地完成,可以同时进行。

代码多少跟判断多少不是成倍的关系。你是需要安装所有 vc 运行库2005、2008、2010、2012、2013、2015 吗?
离线solan

发帖
80
金钱
800
威望
80
只看该作者 2 发表于: 2015-10-31
回 1楼(gnatix) 的帖子
gnatix:多个操作不是一定要一个接一个地完成,可以同时进行。代码多少跟判断多少不是成倍的关系。你是需要安装所有 vc 运行库2005、2008、2010、2012、2013、2015 吗? (2015-10-31 23:07) 

这么晚了,谢谢版主回复,我要全部安装
离线solan

发帖
80
金钱
800
威望
80
只看该作者 3 发表于: 2015-10-31
我一直不停的在本站查找,终于找到一个帖子,好像对我有用
http://bbs.hanzify.org/read-htm-tid-97135.html
离线solan

发帖
80
金钱
800
威望
80
只看该作者 4 发表于: 2015-10-31
我稍稍修改,请问版主这样对吗?
  1. [Setup]
  2. AppName=My Program
  3. AppVersion=1.5
  4. DefaultDirName={pf}\My Program
  5. [Files]
  6. Source: "7za.exe"; DestDir: {tmp}
  7. [Run]
  8. Filename: "{tmp}\7za.exe"; Parameters: "x ""{src}\klin.7z"" -o""{app}\klin"" -r -aoa"; Flags: runhidden nowait




离线solan

发帖
80
金钱
800
威望
80
只看该作者 5 发表于: 2015-11-01
  1. [Files]
  2. Source: "7za.exe"; DestDir: {tmp};
  3. ;deleteafterinstall标记表示所调用的文件在安装程序中断或结束时就被删除 (32系统位运行x86.bat,64系统位运行x64.bat)
  4. Source: "x86.bat"; DestDir: "{app}\KL 8.0\KLSLicensing"; Check: not IsWin64; Flags: deleteafterinstall
  5. Source: "x64.bat"; DestDir: "{app}\KL 8.0\KLSLicensing"; Check: IsWin64; Flags: deleteafterinstall
  6. Source: "uninst000.bat"; DestDir: "{app}\KL 8.0\KLLicensing";
  7. ;下面两个绿化工具
  8. source: "setup32.exe"; DestDir: "{app}";
  9. source: "uninstall32.exe"; DestDir: "{app}";
  10. source: "使用说明.txt"; DestDir: "{app}";
  11. source: "许可协议.txt"; DestDir: "{app}";
  12. source: "解决缩略图不显示的问题.txt"; DestDir: "{app}";
  13. ; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”
  14. [CustomMessages]
  15. ;定义 {cm:...} 常量的自定义消息值,也可以在所使用的诺言文件Default.isl和English.isl里修改
  16. CN.QudongZC=正在安装运行库及注册许可服务,请稍候...这需要一些时间!
  17. EN.QudongZC=Installing the runtime and Registration license service, please wait ... It takes some time!
  18. [Languages]
  19. Name: "CN"; MessagesFile: "embedded\Default.isl"
  20. Name: "EN"; MessagesFile: "embedded\English.isl"
  21. [Run]
  22. ;解压7z文件
  23. Filename: "{tmp}\7za.exe"; Parameters: "x ""{src}\kl.7z"" -o""{app}\KL 8.0"" -r -aoa"; Flags: runhidden  
  24. ;runhidden标记表示隐藏执行批处理(Config目录在安装后通过批处理来删除,如果不想删除,请修改批处理)
  25. Filename: "{app}\KL 8.0\KLSLicensing\x86.bat"; StatusMsg: "{cm:QudongZC}"; Flags: nowait runhidden
  26. Filename: "{app}\KL 8.0\KLSLicensing\x64.bat"; StatusMsg: "{cm:QudongZC}"; Flags: nowait runhidden

刚刚测试了下,行了,但是有问题:

1、如果在[run]段加了nowait标签,那么其他都安装好了,都跳出安装完成对话框了,那个解压还在后台解压。

2、如果在[run]段不加nowait标签,那么解压和其他安装不能同步进行,而且安装界面还被挂起不能拖动。

请教:怎么做才能同步进行安装(是不是就是多线程啊,我不懂),要求显示安装界面并能拖动(如果要隐藏的话,就要另外显示一个图片界面什么的,广告图片也行)



离线solan

发帖
80
金钱
800
威望
80
只看该作者 6 发表于: 2015-11-01
运行库2005到2015(86和64)我暂时用x86.bat  x64.bat这两个批处理来判断和安装的
离线solan

发帖
80
金钱
800
威望
80
只看该作者 7 发表于: 2015-11-01
但是有个缺点,调用外部批处理会出现安装界面被挂起的超级怪病,inno是怎么了,既然可以隐藏,为什么还要挂起呢。或许在code段调用不会出现挂起,但是增加了难度,我不会。
离线solan

发帖
80
金钱
800
威望
80
只看该作者 8 发表于: 2015-11-02
第1个问题和同步问题已解决
挂起的问题怎么也告不定,请求斑竹帮忙
离线solan

发帖
80
金钱
800
威望
80
只看该作者 9 发表于: 2015-11-02
发现外部安装,比如用批处理安装运行库、外部解压等等都会让安装界面挂起,这个让用户体验变差了