简体   繁体   English

解压缩由InstallShield创建的MSI并重新打包

[英]Unpack an MSI created by InstallShield and repack

I have a MSI created using InstallShield. 我有一个使用InstallShield创建的MSI。 I do not have the InstallShield project. 我没有InstallShield项目。 I want unpack this MSI into components & then recreate the install using a different installer (say Wix). 我想将这个MSI解压缩到组件中,然后使用不同的安装程序(比如Wix)重新创建安装。 Is something like this possible? 这样的事情可能吗? If needed, I can get the InstallShield scripts which were used (ie the scripts which check if product is allready installed - what version is installed etc.) 如果需要,我可以获得所使用的InstallShield脚本(即检查产品是否已经安装的脚本 - 安装了什么版本等)

Also if this is possible what installer tool should I try if my biggest needs is achieving very high compression - ie MSI should be as small as possible. 如果这是可能的话,我应该尝试使用哪种安装工具,如果我最大的需求是实现非常高的压缩 - 即MSI应该尽可能小。 I am on Windows, my application is java application (not an exe - just jar files). 我在Windows上,我的应用程序是java应用程序(不是exe - 只是jar文件)。 I am not interested in creating Exes. 我对创建Exes不感兴趣。

As an aside, does anyone know what compression does Oracle use for it's JRE installers. 顺便说一句,有没有人知道Oracle为其JRE安装程序使用了什么压缩。 I took the 6.12 JRE installer - it's around 15 MB in size - & installed java & then zipped the jre directory using different zip tools - most of them ended up with a 30MB zip file. 我使用6.12 JRE安装程序 - 大小约为15 MB - 并安装java然后使用不同的zip工具压缩jre目录 - 其中大多数最终都是30MB的zip文件。

Wix does have a tool for generating Wix source from an MSI, its called Dark . Wix确实有一个从MSI生成Wix源的工具,它叫做Dark The documentation for the tool is pretty sparse, and as Tim Lentine mentiioned you'll probably need to do some tweaking after running it, but it should give you a good start. 这个工具的文档相当稀疏,正如Tim Lentine所说,你可能需要在运行之后做一些调整,但它应该给你一个良好的开端。

Many MSI authoring tools (InstallShield, Advanced Installer, etc.) have the ability to "import" an existing MSI into the tool you are using for further modification (eg using Advanced Installer import an MSI authored using InstallShield). 许多MSI创作工具(InstallShield,Advanced Installer等)都能够将现有MSI“导入”您正在使用的工具进行进一步修改(例如,使用Advanced Installer导入使用InstallShield创建的MSI)。 I haven't used Wix so I don't know if this capability exists in the tool or not. 我没有使用Wix,所以我不知道该工具是否存在此功能。

You can also use Orca.exe to view and edit the MSI as well. 您也可以使用Orca.exe查看和编辑MSI。

It's been my experience that importing an MSI into another tool can be hit or miss. 根据我的经验,将MSI导入另一个工具可能会被击中或错过。 Sometimes everything comes over perfectly, but if you rely upon scripts or other custom actions sometimes those (for whatever reason) don't come over correctly all of the time. 有时一切都完美无缺,但如果你依赖脚本或其他自定义动作,有时那些(无论出于何种原因)并不是一直都是正确的。

It's been a few years since I've done this, but I recall spending a day or two "tweaking" the new project before the new MSI would work as I wanted it to. 我已经这么做了几年,但是我记得在新的MSI按照我的意愿工作之前花了一两天“调整”新项目。

As for what tool gives you the most compression, have a look at this Compressing an uncompressed MSI file which may offer some insight for you. 至于什么工具为您提供最大的压缩,请查看压缩未压缩的MSI文件 ,这可能会为您提供一些见解。

Do you just need to update a project you lost the source to? 您是否只需更新丢失源的项目? You can open an MSI using InstallShield in Wizard Mode and then select the Convert MSI to InstallShield project. 您可以在向导模式下使用InstallShield打开MSI,然后选择将MSI转换为InstallShield项目。

This will give you a project that you can update and rebuild. 这将为您提供一个可以更新和重建的项目。 You'll probably want to do a lot of cleanup though to get back to a true project format though. 尽管如此,你可能想要进行大量的清理以恢复真正的项目格式。

BTW, using a system like Team Foundation Server helps prevent this situation. 顺便说一下,使用像Team Foundation Server这样的系统有助于防止出现这种情况。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM