如何向后台更新下载器提供安装程序变量?

How to provide installer variable to Background update downloader?

我正在使用带有自动更新安装程序的 Install4j。我在 "Installer" 部分下定义了一个 "Background update downloader" 应用程序。我想从我自己的 Java 应用程序启动此安装程序,并使用集成向导获取代码。我将安装程序变量 (updatesUrl) 设置为安装程序的参数。问题是安装程序忽略了我的值。我希望能够向安装程序提供我自己的值。

"Backgroung update downloader" 有一个 "Startup" 块。我的安装程序变量在此块内不可用。如果我在 "Startup" 块之外添加一个显示变量的屏幕,它将显示我作为参数提供给安装程序的值。所以似乎安装程序变量在 "Setup" 块内不可用。是错误还是有意为之?

ApplicationLauncher.launchApplication(
  "1529",
  new String[] {"-VupdatesUrl=file:///C:/somepath/updates.xml"},
  true,
  null
);

问题是“?:”运算符不起作用。 "Check for update" 操作有一个字段 "Update descriptor URL",默认设置为 ${installer:updatesUrl?:${compiler:sys.updatesUrl}}。当我将其更改为 ${installer:updatesUrl} 时,它按预期工作。

即使您在命令行上传递 -VupdatesUrl=file:///C:/somepath/updates.xml${installer:updatesUrl?:${compiler:sys.updatesUrl}} 仍解析为 ${compiler:sys.updatesUrl} 的事实是一个错误,将在 install4j 8.0.3 中修复。