我是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的任何直接调用。
我希望你能理解我的问题(英语不是我的母语)。如果您需要更多信息以便能够帮助我,请随时询问,我会尝试尽快添加它们。
答案 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>