如何在Wix工具集中卸载非msi InstallShield设置

时间:2017-10-26 14:37:12

标签: wix

我有一个旧的安装程序是使用InstallShield 2015制作的,它的非基于MSI(我尝试用7zip打开它,但不能 - >非基于MSI,我是对的吗?)。 通常,我需要停止使用InstallShield并迁移到Wix。

  1. 是否有可能将InstallShield转换为Wix?
  2. 使用Wix,我需要检测当前是否安装了以前的版本(InstallShield版本)并自动卸载它,然后继续正常的Wix进程。这样的事情可能吗?
  3. 谢谢: - )

1 个答案:

答案 0 :(得分:1)

我会添加一个快速回答供参考,但问题似乎已经解决了。

  1. 如果旧的Installshield设置是MSI,您可以使用WiX工具包中的dark.exe将“反汇编”MSI转换为WiX源代码(dark.exe也可以反编译WiX setup.exe包 - 这里有一个有点凌乱的描述:How can I compare the content of two (or more) MSI files?)。

    • 经过一些清理后,您可以将WiX源编译为新的WiX构建的MSI。清理成功需要一些知识和经验(消除GUI部分,添加WiX GUI,重新调整源路径,清理二进制流表等等...... - 不是微不足道的,但不是火箭科学:-)。

    • 如果旧设置是旧版安装程序(不是MSI),则可以使用重新打包工具将其转换为MSI,以捕获安装期间对系统所做的更改并将其转换为MSI。清理这样的捕获需要很多知识。如果您了解产品,通常最好“手动”编写新设置。或者如果你在一家大公司,你可能会有一个“重新包装团队”可以在某个地方找到专业知识来为你完成这项工作。

  2. 是的,旧的设置可以作为新MSI的一部分卸载

    • 如果您发现旧的设置是MSI,您可以在新的WiX安装过程中使用主要升级来删除它。

    • 如果旧版本是旧版设置,则可能会涉及更多内容,通常需要您“记录”对话框响应文件以提供给旧setup.exe文件的卸载程序功能。一点也不琐碎,而且非常容易出错。顺便提一下,MSI的主要优点之一就是完全可以抑制的GUI。

    • 作为参考,这是一个旧答案,其中包含有关处理我们经常需要卸载和升级的臭名昭着的setup.exe文件的信息: How can I use powershell to run through an installer? setup.exe可以有很多不同的东西:Installshield设置,高级安装程序设置,Inno设置,自解压Zip-Archive,专有设置格式,列表继续...