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],之后按照相应文件结构调用 

  • 相关阅读:
    疫情控制
    2020 CSP-J 多校赛 Day 2 T2 题解
    三校联考-水题狂欢信心赛
    QBXT 提高组储备营 2020.夏 游记
    【题解】(我出的题)XM捡面筋
    【题解】P4025 [PA2014]Bohater
    【题解】1644:【例 4】佳佳的 Fibonacci
    【题解】CF1165F2 Microtransactions (hard version)
    P2261 [CQOI2007]余数求和
    OVO——扶咕咕的20道CF
  • 原文地址:https://www.cnblogs.com/wanbinghong/p/1887870.html
Copyright © 2011-2022 走看看