【问题标题】:how do i force install4j NOT to overwrite specific files when doing an update我如何强制 install4j 在进行更新时不要覆盖特定文件
【发布时间】:2011-11-14 02:54:19
【问题描述】:

我已经创建了我的 Install4j 项目,到目前为止我对安装、卸载和更新过程感到满意。但是,出现了一种新情况,当用户更新产品的新版本时,我需要阻止 install4j 覆盖用户安装目录中的特定文件。谁能告诉我如何强制/配置 install4j,以便在更新现有安装时它不会覆盖特定文件。

例如,当我安装我的应用程序时,我会在安装文件中包含一个数据库文件 (mydb.script),以便用户可以使用数据库。我发现当我创建应用程序的新版本并再次安装时,install4j 已经检测到我安装了以前的版本并询问我是否要更新该版本。我点击“是”,它就完成了它的工作。但是,在此过程中,它实际上用安装程序中的数据库覆盖了以前的数据库(导致用户丢失自第一次安装以来输入的所有数据)。我不想要这种行为。我想告诉 install4j 不要覆盖这个特定的文件,如果它存在的话。

【问题讨论】:

    标签: java install4j


    【解决方案1】:

    覆盖策略可以在分发树中控制。请看下面的屏幕截图,它显示了“Hello world”示例项目的分发树。 vmoptions 文件不应被覆盖,因此其覆盖策略设置为“从不”。

    如果您包含带有目录条目的文件并且只想更改单个文件的覆盖策略,只需在目录条目之外添加单个文件(在这种情况下您可能必须手动创建父目录)。单个条目的设置将覆盖目录条目的设置。

    【讨论】:

    • 完美。非常感谢你。这正是我想要的。
    • @Ingo 6.1.6版本怎么办?
    • @Marckaraujo 还是一样的程序。
    • @IngoKegel 我有类似的情况,我不想在更新期间覆盖文件,但分发树中不存在该文件。我该如何处理?
    • 那么文件不会被覆盖,因为它不存在。请提出另一个问题并在那里解释您的问题。
    猜你喜欢
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 2016-02-12
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多