一个.iss文件是否可以同时生成不同的设置版本?可能有多个[设置]部分?
答案 0 :(得分:5)
不可能同时创建多个输出设置exe,但可以从单个脚本创建多个输出设置。
关键是使用ISPP的#define
和#ifdef
或#if
指令来指定脚本中仅在定义特定变量或给定特定值时才编译的部分。然后,您可以使用批处理脚本使用iscc
或/dVAR
参数(相当于/dVAR="VALUE"
)调用#define
,以便为每次编译选择不同的条件。 / p>
这仅在脚本大致相同时才有用(例如,如果您想为应用程序的不同“版本”创建单独的安装程序,而不是包含最大版本的所有文件并在运行时决定安装)。如果您的脚本彼此完全不同,那么您应该创建单独的脚本并从批处理文件或自动构建脚本中编译它们。
答案 1 :(得分:3)
测试结果:
通过运行简单的测试......不,这是不可能的。首先,您可以在脚本中的几个位置介绍部分。考虑您可以在脚本中执行以下操作:
[Setup]
AppName=My Program 1
AppVersion=1.5
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
[Setup]
DefaultDirName={pf}\My Program
从中您可以看到,如果您可以在一个脚本文件中为更多的脚本编写脚本,编译器将无法识别哪个[Setup]
部分属于哪个设置。
解决方法:强> 的
但是,如果需要在基本级别上自动化构建过程,则可以创建批处理文件,并通过命令行为所有脚本运行编译器。有关命令行编译器的使用,请参阅the reference
。
如果要使用相同的输出目录编译多个脚本,请不要忘记为每个脚本文件指定OutputBaseFilename
指令的不同值(输出exe名称)。