ANT 可以参数化 InnoSetup 脚本吗?
Can ANT parametrize InnoSetup script?
构建我们的 java 应用程序(使用 ANT 脚本)的最后一步涉及 Inno Setup 将所有内容打包到一个不错的 windows 安装程序中。
我们现在正在升级我们的 ANT 脚本以生成我们应用程序的 32 位和 64 位版本。因此,我们的问题是:我们如何参数化我们的 Inno Setup 配置文件,以便它可以生成 x86 和 x64 版本(因此它会被 ANT 脚本称为 2x,参数指示 x86/x64)。
在 Inno Setup 配置文件中,只有 1 行需要根据此参数进行更改:
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>
任何有关如何执行此操作的帮助/提示将不胜感激!
谢谢,
托马斯
使用 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>
然后像这样用用户属性 32 或 64 启动你的 ant 文件:
ant -f build.xml -D32or64=x64
或
ant -f build.xml -D32or64=x86
带过滤的复制任务会将标记 @32or64@ 替换为用户属性 32 或 64 的值,因此 foobaz.iss 具有:
ArchitecturesInstallIn64BitMode=x64
或
ArchitecturesInstallIn64BitMode=x86
构建我们的 java 应用程序(使用 ANT 脚本)的最后一步涉及 Inno Setup 将所有内容打包到一个不错的 windows 安装程序中。
我们现在正在升级我们的 ANT 脚本以生成我们应用程序的 32 位和 64 位版本。因此,我们的问题是:我们如何参数化我们的 Inno Setup 配置文件,以便它可以生成 x86 和 x64 版本(因此它会被 ANT 脚本称为 2x,参数指示 x86/x64)。
在 Inno Setup 配置文件中,只有 1 行需要根据此参数进行更改:
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>
任何有关如何执行此操作的帮助/提示将不胜感激!
谢谢, 托马斯
使用 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>
然后像这样用用户属性 32 或 64 启动你的 ant 文件:
ant -f build.xml -D32or64=x64
或
ant -f build.xml -D32or64=x86
带过滤的复制任务会将标记 @32or64@ 替换为用户属性 32 或 64 的值,因此 foobaz.iss 具有:
ArchitecturesInstallIn64BitMode=x64
或
ArchitecturesInstallIn64BitMode=x86