ANT可以参数化InnoSetup脚本吗?

ANT可以参数化InnoSetup脚本吗?,ant,inno-setup,32bit-64bit,Ant,Inno Setup,32bit 64bit,构建java应用程序(使用ANT脚本)的最后一步是使用Inno安装程序将所有内容打包到一个漂亮的windows安装程序中 我们现在正在升级ANT脚本,以生成32位和64位版本的应用程序。因此,我们的问题是:我们如何对Inno设置配置文件进行参数化,使其能够同时生成x86和x64版本(因此ANT脚本将其称为2x,其中一个参数表示x86/x64) 在Inno Setup config文件中,只有一行需要根据此参数进行更改: ArchitecturesInstallIn64BitMode=x64 这

构建java应用程序(使用ANT脚本)的最后一步是使用Inno安装程序将所有内容打包到一个漂亮的windows安装程序中

我们现在正在升级ANT脚本,以生成32位和64位版本的应用程序。因此,我们的问题是:我们如何对Inno设置配置文件进行参数化,使其能够同时生成x86和x64版本(因此ANT脚本将其称为2x,其中一个参数表示x86/x64)

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

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>

任何关于如何做到这一点的帮助/提示都将不胜感激

谢谢, 托马斯

与过滤一起使用,也可用于其他动态值。
您的iss配置文件模板有:

ArchitecturesInstallIn64BitMode=@32or64@
<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>
您的build.xml有:

ArchitecturesInstallIn64BitMode=@32or64@
<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的值替换令牌@32or64@,因此foobaz.iss有以下两种情况之一:

ArchitecturesInstallIn64BitMode=x64

ArchitecturesInstallIn64BitMode=x86