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