3

我有一个使用 InstallShield 创建的 MSI。我没有 InstallShield 项目。我想将此 MSI 解压缩到组件中,然后使用不同的安装程序(例如 Wix)重新创建安装。这样的事情可能吗?如果需要,我可以获取使用的 InstallShield 脚本(即检查产品是否已安装的脚本 - 安装了什么版本等)

此外,如果这是可能的,如果我最大的需求是实现非常高的压缩率,我应该尝试什么安装工具 - 即 MSI 应该尽可能小。我在 Windows 上,我的应用程序是 java 应用程序(不是 exe - 只是 jar 文件)。我对创建 Exes 不感兴趣。

顺便说一句,有谁知道 Oracle 对其 JRE 安装程序使用什么压缩。我使用了 6.12 JRE 安装程序——它的大小约为 15 MB——并安装了 java,然后使用不同的 zip 工具压缩了 jre 目录——其中大多数最终得到了一个 30MB 的 zip 文件。

4

3 回答 3

3

Wix 确实有一个从 MSI 生成 Wix 源的工具,称为Dark。该工具的文档非常少,正如Tim Lentine 所提到的,您可能需要在运行它后进行一些调整,但它应该会给您一个良好的开端。

于 2012-10-19T18:41:24.820 回答
1

许多 MSI 创作工具(InstallShield、Advanced Installer 等)能够将现有 MSI “导入”到您正在使用的工具中以进行进一步修改(例如,使用 Advanced Installer 导入使用 InstallShield 创作的 MSI)。我没有使用过 Wix,所以我不知道该工具中是否存在此功能。

您也可以使用Orca.exe来查看和编辑 MSI。

根据我的经验,将 MSI 导入另一个工具可能会被击中或错过。有时一切都完美无缺,但如果您依赖脚本或其他自定义操作,有时(无论出于何种原因)这些操作并不能始终正确完成。

自从我这样做以来已经有几年了,但我记得在新的 MSI 能够按照我想要的方式工作之前,我花了一两天的时间“调整”新项目。

至于什么工具可以为您提供最大的压缩,请查看此压缩未压缩的 MSI 文件,它可能会为您提供一些见解。

于 2012-10-19T18:32:49.603 回答
0

您是否只需要更新您丢失源的项目?您可以在向导模式下使用 InstallShield 打开 MSI,然后选择将 MSI 转换为 InstallShield 项目。

这将为您提供一个可以更新和重建的项目。不过,您可能需要进行大量清理才能恢复到真正的项目格式。

顺便说一句,使用像 Team Foundation Server 这样的系统有助于防止这种情况。

于 2012-10-20T12:17:33.720 回答