我已经创建了我的Install4j项目,到目前为止我对安装,卸载和更新过程感到满意。但是,当用户对产品的新版本进行更新时,我需要阻止install4j覆盖用户安装目录中的特定文件。任何人都可以告诉我如何强制/配置install4j,以便在更新现有安装时不会覆盖特定文件。
例如,当我安装应用程序时,我将数据库文件(mydb.script)作为安装文件的一部分包含在内,以便用户可以使用数据库。我发现当我创建我的应用程序的新版本并再次安装时,install4j已经检测到我有一个以前的版本安装并询问我是否要更新该版本。我点击“是”并完成它的工作。但是,在此过程中,它实际上用安装程序内的数据库覆盖了以前的数据库(导致用户丢失了自第一次安装以来他们输入的所有数据)。我不想要这种行为。我想告诉install4j不要覆盖这个特定文件(如果存在)。
答案 0 :(得分:4)
可以在分发树中控制覆盖策略。请参见下面的屏幕截图,它显示了“Hello world”示例项目的分布树。不应覆盖vmoptions文件,因此其覆盖策略设置为“never”。
如果您包含带有目录条目的文件并且只想更改单个文件的覆盖策略,则只需添加目录条目之外的单个文件(在这种情况下您可能必须手动创建父目录)。单个条目的设置将覆盖目录条目的设置。