如何将参数从Java FX Ant任务传递给Inno Setup?

时间:2015-05-21 12:55:14

标签: ant javafx inno-setup

我是JavaFX的新手,只有一些关于Ant的基本知识。目前我正在学习如何使用FX Ant任务来部署应用程序。 修改:使用<fx:deploy nativeBundles="exe" ../> Ant自动使用Inno Setup创建一个.exe扩展名的设置文件。

由于我们公司有一些附属公司,我们的大多数应用程序需要为每个公司部署一次。这是因为创建了一些Windows注册表项并且它们应该是这样的(不是我的想法,管理层希望它像这样!):

  

“HKCU \ Software \ 关联公司名称 \ AppName \ Settings”

现在我想知道,如果可以将参数从build.xml传递到.iss以动态插入粗体部分。

我发现this问题,在哪里通过 建议使用/DMyParameterName=MyValue到Inno Setup编译器(ISC),但我不知道如何从build.xml执行此操作,因为我找不到对ISC的任何直接调用。

我希望你能理解我的问题(英语不是我的母语)。如果您需要更多信息以便能够帮助我,请随时询问,我会尝试尽快添加它们。

1 个答案:

答案 0 :(得分:1)

Java FX不允许您将任何其他参数传递给ISCC.exe

至少根据OpenJFX源代码:

//run candle
ProcessBuilder pb = new ProcessBuilder(
        TOOL_INNO_SETUP_COMPILER_EXECUTABLE.fetchFrom(params),
        "/o"+outdir.getAbsolutePath(),
        getConfig_ExeProjectFile(params).getAbsolutePath());
pb = pb.directory(EXE_IMAGE_DIR.fetchFrom(params));
IOUtils.exec(pb, VERBOSE.fetchFrom(params));

您可以设置环境变量而不是参数,并使用以下语法使用它:

{%VARNAME}

请参阅InnoSetup Constants文档。

对于那些寻找纯Ant解决方案(没有Java FX)的人:

InnoSetup编译器(ISCC.exe)是一个普通的控制台可执行文件。

使用基本Exec Ant task

运行编译器
<project>
  <exec executable="ISCC.exe">
    <arg value="Example1.iss"/>
    <arg value="/DMyParameterName=MyValue"/>
  </exec>
</project>