Installshield Chained MSI不对单个MSI执行修复

时间:2014-02-17 02:30:33

标签: windows-installer installshield

我在一个链式msi Basic MSI项目中有3个MSI。

安装和卸载工作正常但如果我选择修复,InstallShield只执行父MSI并忽略其中的所有其他MSI。

我已按照说明进行操作 http://community.flexerasoftware.com/showthread.php?191832-Repair-chained-msi

并在选项列上设置ecoReinstallInstalled,但它似乎无法正常工作

知道我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

所以你有一个包装器或父MSI产生3链式MSI?您需要通过install属性将REINSTALL = ALL传递给每个链接的MSI。但是,只有已经安装了每个MSI,所以可能是一个自定义操作来检测首次安装与否,然后使用REINSTALL = ALL设置一个或多个属性。

http://installdeploy.com/blog/

答案 1 :(得分:0)

您需要设置名为ecoReinstallInstalled的标志(Installshield help未提及此关键字),该标题在“使用链式MSI软件包对Windows Installer安装程序进行组件化”文档中引用。

基本上,通过将值16添加到当前值,可以更改指定链式MSI的ISChainPackage表的“选项”列。如果该值小于16;例如,值为0,将其替换为16;如果值为1,则将其替换为17,依此类推。选项值确定UI级别模式(链式MSI将运行的模式);对于基本UI为0,对于无UI为1,值为16或更高将允许链式MSI在已经安装后重新运行。

如果这不起作用,你应该通过修改属性IS_CHAINER_POST_COMMANDLINE来检查链接的MSI的日志文件,你也可以尝试在ui模式下运行链式MSI以查看行为是什么。

有趣的是,您使用了哪种替代方法而不是链式MSI功能?

按照网页正在进行的方式查看我的博客:

http://installdeploy.com/wordpress/blog/