我使用InstallShield创建了一个MSI。我没有InstallShield项目。我想将这个MSI解压缩到组件和组件中。然后使用不同的安装程序(比如Wix)重新创建安装。这样的事情可能吗?如果需要,我可以获得所使用的InstallShield脚本(即检查产品是否已经安装的脚本 - 安装了什么版本等)。
如果这是可能的话,我应该尝试使用哪种安装工具,如果我最大的需求是实现非常高的压缩 - 即MSI应该尽可能小。我在Windows上,我的应用程序是java应用程序(不是exe - 只是jar文件)。我对创建Exes不感兴趣。
顺便说一句,有没有人知道Oracle为其JRE安装程序使用了什么压缩。我拿了6.12 JRE安装程序 - 大小约为15 MB - &安装java&然后使用不同的zip工具压缩jre目录 - 其中大部分最终都是30MB的zip文件。
答案 0 :(得分:3)
Wix确实有一个工具可以从MSI生成Wix源,它叫做Dark。该工具的文档很稀疏,而Tim Lentine mentiioned你可能需要在运行后进行一些调整,但它应该会给你一个良好的开端。
答案 1 :(得分:1)
许多MSI创作工具(InstallShield,Advanced Installer等)都能够将现有的MSI“导入”您正在使用的工具进行进一步修改(例如,使用Advanced Installer导入使用InstallShield创建的MSI)。我没有使用Wix,所以我不知道该工具是否存在此功能。
您也可以使用Orca.exe查看和编辑MSI。
根据我的经验,将MSI导入另一个工具可能会被击中或错过。有时一切都完美无缺,但如果你依赖脚本或其他自定义动作,有时那些(无论出于何种原因)并不是一直都是正确的。
我已经这么做了几年,但我记得花一两天时间“调整”新项目,然后新的MSI将按照我的意愿运作。
至于哪种工具可以为您提供最大的压缩效果,请查看此Compressing an uncompressed MSI file,这可能会为您提供一些见解。
答案 2 :(得分:0)
您是否只需更新丢失源的项目?您可以在向导模式下使用InstallShield打开MSI,然后选择将MSI转换为InstallShield项目。
这将为您提供一个可以更新和重建的项目。你可能想要做很多清理,但要回到真正的项目格式。
BTW,使用像Team Foundation Server这样的系统有助于防止出现这种情况。