我几乎选择了install4j作为我的项目的安装包。在许多其他优点中,它是对升级的内置支持,据我所知,它是该领域中最优秀的。不过我确实有个奇怪的问题..
有没有一种最佳实践或可重用代码来支持“引导”install4j安装程序的概念,使其具有支持升级使用“本地”安装机制安装的产品的旧版本所需的元数据?
正如我假设的许多项目的情况一样,我们的项目已经存在多年,并且混杂了用于Windows的InstallShield安装程序和用于Unix的BASH脚本。我们正在使用install4j来整合所有这些内容。
一些可能有趣的后续问题可能是: 1.有没有办法在API中设置从isUpgradeInstallation()返回的值? 2.如果我将应用程序ID嵌入到新安装程序中的.install4j目录中,install4j可以用它运行吗?
如果您有任何想法或建议,我们将非常感谢。
发布于 2012-03-20 17:53:36
通常,您会添加自定义逻辑来处理遗留升级的情况。
但是,您可以通过在包含i4jparams.conf文件的旧安装目录中创建一个.install4j目录,将旧安装转换为“假的”install4j安装。在伪造配置文件中,唯一重要的信息是版本信息和应用程序ID,您可以删除其他所有内容。
则context.isUpdateInstallation()将返回true。
https://stackoverflow.com/questions/9770242
复制相似问题