zoukankan      html  css  js  c++  java
  • SOLUTION:MSI安装包嵌套调用解决方案

    首先要感谢网友爱新觉罗.奕,是他首先将此方案发布出来,详细见AppInstall网站中《单MSI引导多MSI安装和卸载》一章,http://www.appinstall.cn/viewthread.php?tid=840&extra=page%3D1

    有关安装包嵌套调用,之前也琢磨过很多中办法,IntallScript,InstallScript MSI,MSI各种类型互相嵌套,但惟独发现MSI包无法嵌套,原因很简单,Windows Installer只接受单实例安装。

    解决方案:

    1. 首先创建主Basic MSI工程,设计组织你的安装程序。

    2. 【Installation Designer】 -> 【Media】 ->  【Releases】视图, 选中Chained .msi Packages,点击鼠标右键选择New Chained Package Ins

    3. 在Installation(run-time path)添加MSI包,出现提示时选择Yes(此情况适合压缩的安装包)

    4. Product code保留默认

    5. UI Level建议选择No UI(/qn),静默安装

    6. Install condition就是默认的Not Installed

    7. Install properties就保留默认空,其他如爱新觉罗.奕所讲的“此处填安装msi的参数,例如ADDLOCAL=ALL COMPANYNAME=MS”

    8. Removal condition输入:Not Installed,如果保留默认的REMOVE="ALL",卸载时在系统的“添加/删除”里子MSI包没被清空,其实已经卸载了

    9. Remove properties默认为空

    10. Release flags默认为空

    11. Streamed files中就是默认你的子MSI包

    12. Delete streamed files after installation保留默认的勾选

    13. 之后重新Build安装包并安装,你会在系统的“添加/删除”中看到主MSI程序和子MSI程序都被安装包目标机上

    补充:

    1. 必须是通过Windows Installer 4.5以上版本(可以通过Redistributables添加Windows Installer 4.5,目前Windows XP系统的Windows Installer多为3.1)

    2. 步骤7中如果设置了 ARPSYSTEMCOMPONENT=1 可以将子MSI程序隐藏(不在系统的“添加/删除”里显示)

    3. 如果非压缩的安装包,可以在步骤3中选择No,之后将子MSI添加到Support Files/Advanced Files/Disk 1下,调用的根路径是[SourceDir],之后按照相应文件结构调用 

  • 相关阅读:
    Ubuntu中root用户和user用户的相互切换
    MVCC
    vs2010和C#4.0
    使用命令选项连接到MySQL服务器(参考MySQL官方文档)
    使用外部数据源连接WIN版本的MySQL时,测试连接无法通过
    MySQL学习进阶路线
    解决linux(centos7)重新安装mysql systemctl start mysqld.service时报错
    最最完整的 MySQL 规范都在这了
    Linux性能测试与调优的15条常用命令
    (转载)libevent源码深度剖析二
  • 原文地址:https://www.cnblogs.com/wanbinghong/p/1887870.html
Copyright © 2011-2022 走看看