Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将参数从JavaFXAnt任务传递到Inno设置?_Ant_Javafx_Inno Setup - Fatal编程技术网

如何将参数从JavaFXAnt任务传递到Inno设置?

如何将参数从JavaFXAnt任务传递到Inno设置?,ant,javafx,inno-setup,Ant,Javafx,Inno Setup,我是JavaFX新手,对Ant只有一些基本的了解。目前,我正在学习如何使用FX Ant任务部署应用程序编辑:使用Ant自动使用Inno Setup创建扩展名为.exe的安装文件 由于我们公司有一些附属公司,我们的大多数应用程序需要为每个附属公司部署一次。这是因为创建了一些Windows注册表项,它们应该是这样的(不是我的想法,管理层希望它是这样的!): “HKCU\软件\附属公司名称\应用名称\设置” 现在我想知道,是否可以将参数从我的build.xml传递到.iss以动态插入粗体部分 我发现了

我是JavaFX新手,对Ant只有一些基本的了解。目前,我正在学习如何使用FX Ant任务部署应用程序编辑:使用
Ant自动使用Inno Setup创建扩展名为
.exe
的安装文件

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

“HKCU\软件\附属公司名称\应用名称\设置”

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

我发现了一个问题,路过哪里 建议将
/DMyParameterName=MyValue
发送到Inno安装编译器(ISC),但我不知道如何从
build.xml
执行此操作,因为我找不到对ISC的任何直接调用


我希望你能理解我的问题(英语不是我的母语)。如果您需要更多信息来帮助我,请随时询问,我会尽快添加这些信息

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}
见文件


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

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

您可以使用基本命令运行编译器:



“当您使用fx:deploy时,是Java fx创建了.iss文件。您对其内容没有任何控制权。”如果不是这样,您可以使用自己的
.iss
文件,如本文所述。但我认为这不会“JavaFX不允许您向ISCC.exe传递任何附加参数”。谢谢你的回答。当我找到任何工作时,我会把它贴在这里。好的,很好。我把那张纸条拿走了。在这种情况下,可以改用环境变量。请参阅我的编辑。我想一个选项(只是一个想法)是在使用fx任务之前在ant中动态创建(例如,一些模板处理)自定义.iss文件
<project>
  <exec executable="ISCC.exe">
    <arg value="Example1.iss"/>
    <arg value="/DMyParameterName=MyValue"/>
  </exec>
</project>