我们使用InstallShield InstallScript项目来创建我们的安装程序,并且正在寻找一种迁移到WiX Toolset的好方法。据我所知,没有从Installshield InstallScript项目更新为WiX项目的UpgradeCode(对于MSI)。
到目前为止,我发现的唯一解决方案是:
有没有更好的办法?
好的,在所有这些评论之后,我想我理解为什么这是一个问题。不幸的是,我不认为有什么简单的方法可以做到。
我认为您的方法将是从基于isntallscript安装程序的安装迁移的唯一真正方法。在与您的产品相关的HKLM / SOFTWARE / Microsoft / Windows / CurrentVersion / Uninstall中应该有一些注册表项。在这里,可能有一个卸载命令,您可以从刻录包中将其读入变量并将该值作为属性传递给您的msi。
在您的MSI中,您可以执行3个自定义操作,这些操作与从installshield产品安装进行升级特别相关。所有这些任务都应该推迟自定义操作,以便它们可以在管理员提升的情况下运行。第一个任务应该将所有配置设置复制到一个安全的位置(通常可以使用%temp%\ ProductConfig \)。保存配置后的第二部分将运行该uninstall命令以删除产品,您可能需要附加/ q或使其被动/安静地运行。然后,在安装结束时,您可以从temp复制配置文件。
每个自定义操作应根据您传入的属性是否设置为某些条件而有条件地运行。我会计划在InstallInitialize之后安排复制cofig,在完成复制之后进行卸载,并在InstallFinalize之前进行还原,以确保在安装程序将所有文件放在系统上之后,所有内容都被复制了。
理想情况下,您希望无需用户进行交互即可升级所有内容,除非通过单击“下一步”和“安装”以最小方式进行。
我仅对InstallShield进行了足够的了解,以至于我真的不喜欢它,因此,如果其他人知道更多并且知道一种更好的方法,他们希望他们会加入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句