ANT可以参数化InnoSetup脚本吗?

时间:2015-07-31 12:40:07

标签: ant inno-setup 32bit-64bit

构建我们的Java应用程序的最后一步(使用ANT脚本)涉及Inno安装程序,以便在一个漂亮的Windows安装程序中打包所有内容。

我们现在正在升级我们的ANT脚本,以生成我们的应用程序的32位和64位版本。因此我们的问题是:我们如何参数化我们的Inno Setup配置文件,以便它可以生成x86和x64版本(因此它将被ANT脚本调用2x,参数指示x86 / x64)。

在Inno Setup配置文件中,只有一行需要根据此参数进行更改:

ArchitecturesInstallIn64BitMode=x64

这就是我们如何从ANT调用Inno Setup命令行:

<exec executable="C:\Program Files (x86)\Inno Setup 5\iscc.exe">
    <arg value="/cc" />
    <arg value="${dir.create_setup}/CreateSetup.iss" />
</exec>

非常感谢任何关于如何做到这一点的帮助/提示!

谢谢, 托马斯

1 个答案:

答案 0 :(得分:2)

使用copy task进行过滤,也可用于其他动态值 你的iss配置文件模板有:

ArchitecturesInstallIn64BitMode=@32or64@

你的build.xml有:

<filter token="32or64" value="${32or64}"/>
<copy file="foobar.iss" tofile="foobaz.iss" filtering="true" overwrite="true"/>

<exec executable="C:\Program Files (x86)\Inno Setup 5\iscc.exe">
 <arg value="/cc" />
 <arg value="foobaz.iss" />
</exec>

然后使用userproperty 32or64启动你的ant文件:

ant -f build.xml -D32or64=x64

ant -f build.xml -D32or64=x86
带过滤的

复制任务将使用userproperty 32or64的值替换令牌@ 32or64 @,因此foobaz.iss具有:

ArchitecturesInstallIn64BitMode=x64

ArchitecturesInstallIn64BitMode=x86