【问题标题】:How do I append a value to the version when the installer executes, for an installer built with Install4j?对于使用 Install4j 构建的安装程序,如何在安装程序执行时将值附加到版本?
【发布时间】:2017-02-10 18:10:09
【问题描述】:

我们有一个使用 Install4j 构建的安装程序安装的 Java 应用程序。该产品根据其安装位置访问不同的数据库层。所以开发层安装在C:....\dev\ProductName,测试层安装在C:....\test\ProductName等。

此外,系统管理员希望程序将数据库层附加到版本号,以便他们可以查询注册表以查看为特定层安装的版本。因此,1.5.0 版本将变为 1.5.0.dev。

有没有办法在安装程序运行时向版本附加一些内容?到目前为止,我还不能让安装人员这样做。我尝试运行一个设置“sys.version”变量的脚本,向版本字段添加一个 ${tier} 变量,以及其他一些事情,但在安装程序运行时无法更改版本。也许这是不可能的。

有什么想法吗?

【问题讨论】:

    标签: java installation install4j


    【解决方案1】:

    要在运行时将字符串附加到安装目录,请将“运行脚本”操作添加到安装程序的“启动”节点并调用

    context.setInstallationDirectory(
         new File(context.getInstallationDirectory(), ".dev1"));
    

    在里面。在“Installer->Update Options”上,“Detect previous install directory”复选框应该被取消选中,否则在更新过程中添加的字符串会累积。

    【讨论】:

    • 谢谢。这适用于安装目录。有没有办法附加到版本或产品名称?
    • 您可以覆盖显示产品名称或版本的消息,但版本本身不能在运行时更改。
    • 好的,我们将停止尝试更改版本。 :-) 我们如何在运行时更改产品名称?我在上下文中看不到 setter。
    • 可以通过在常规设置->应用程序信息步骤的“全名”字段中使用安装程序变量来更改应用程序名称,例如${installer:myProductName}。然后,您可以在安装程序的“启动”节点中使用“设置变量”操作来设置它。此外,您应该在安装程序的“安装程序变量”选项卡上使用默认值预先配置此变量。
    • 嘿,越来越近了!现在唯一的问题是,当安装程序启动时,它会显示“${installer:myProductName} 正在准备 install4j 向导,它将指导您......”。当我在命令行上提供 -VmyProductName=xxxx 时,这并没有改变,所以它似乎是在编译时设置的。有什么办法解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    相关资源
    最近更新 更多