1

在 install4j 中,我们可以为文件设置“如果更新,否则询问”或“总是询问”等的覆盖策略。

我想升级具有最终用户可以编辑的 .properties 配置文件的应用程序。在较新的版本中,将添加一些属性,但我们不想更新自定义的现有属性。

所以我将覆盖策略设置为“从不”,并创建一个自定义操作来合并新属性。我可以使用“将文本附加到文件”,但我想通过比较更动态地做到这一点旧文件和新文件,并且只附加那些键在旧文件中不存在的属性。

所以我的问题:

  1. 我可以检测在安装或升级期间是否调用了该操作?
  2. 如果没有覆盖旧文件,如何获取新文件的内容?
4

1 回答 1

1

我可以检测在安装或升级期间是否调用了该操作?

是的,您可以使用

context.isUpdateInstallation()

在条件表达式或其他脚本中。

如果没有覆盖旧文件,如何获取新文件的内容?

如果未安装文件,则内容不可访问。我建议如下:

  1. 将属性文件安装到不同的路径
  2. 在全新安装的情况下,使用“复制文件”操作将其复制到目标路径
  3. 在升级安装的情况下,合并属性文件
  4. 在所有情况下,使用“删除文件”操作从步骤 1 中删除模板文件
于 2011-12-15T19:49:57.503 回答