inno setup可以根据某个条件释放指定的文件到某个目录吗
比如我有file1.sys 和file2.sys 我想判断下操作系统的位数是否是64位然后 决定使用哪个sys文件 最终会存成file.sys 但一个是32位一个是64位的 可以用 IsWin64 判断操作系统位数 这个我懂,但是 file1 file2在脚本里一般要指定最终释放到的目录的 能不能先驻留内存 当我的条件符合时决定释放哪个文件到安装目录吗? 脚本如何写?
方法其实很简单。
①先解决你文件的问题。 1、[Files]段可以使用参数DestName来指定复制后的文件名,即可实现安装包里file1.sys变成机器上的file.sys; 2、[Files]段中分别添加不同路径的file.sys,比如\32\file.sys和\64\file.sys。
②再解决64的判断问题。 1、在[setup段]添加64位判断ArchitecturesInstallIn64BitMode=x64 2、给[Files]段的64位文件添加Check:Is64BitInstallMode即可。
注意:[Files]中要先写32位文件再写64位文件。 原理:32位文件不管如何都会复制到系统;如果判断为64位,继续复制64位文件覆盖之前的32位文件。
[Files] Source: \SQLServer2005_BC.msi; DestDir: {tmp}; DestName:'SQLServer2005_BC.msi'; Flags: dontcopy; Check: not Is64BitInstallMode Source: \SQLServer2005_BC_x64.msi; DestDir: {tmp}; DestName:'SQLServer2005_BC.msi'; Flags: dontcopy; Check: Is64BitInstallMode [Run] Filename: {%COMSPEC}; Parameters: /C msiexec -i {tmp}\SQLServer2005_BC.msi; WorkingDir:{tmp}; StatusMsg: “正在安装SQL-DMO组件...”
|