如何使用定义的字符串中存在子字符串来控制 Inno Setup 6 脚本中文件的添加
How to control addition of file in Inno Setup 6 script using the presence of a substring in a defined string
我有两个执行相同操作的可执行文件,但一个是针对 DEV 环境构建的,另一个是针对 PROD 环境构建的。
my-app-dev.exe
my-app-prod.exe
一个 VERSION 参数总是传递到包含以下两种格式之一的构建版本的 Inno 构建脚本中:
"1.0.0"
"1.0.0-DEV"
在 [Files]
部分中,如果 VERSION 的当前值包含 DEV 后缀,但包括 my-app-prod.exe 如果没有?
我认为 Check
参数是解决此问题的方法,但我什至无法使最简单的情况起作用。
例如,尽管 Check
函数明确返回 False
.
,但以下代码将文件添加到构建中
[Files]
Source: "my-app-dev.exe"; DestDir: {app}; Check: ShouldIncludeDev
function ShouldIncludeDev: Boolean;
begin
Result := False;
end;
也许我一定遗漏了一些基本的东西...
基于这个答案 (Inno Setup IDE and ISCC/ISPP passing define) 你可以这样做:
通过命令行参数传递值:
/DargDEV="DEV"
在你的 [Files]
部分你可以这样做:
#ifdef argDEV
Source: "my-app-dev.exe"; DestDir: {app};
#else
Source: "my-app-prod.exe"; DestDir: {app};
#endif
备注
它使用 #ifdef
pre-processor 指令。
我有两个执行相同操作的可执行文件,但一个是针对 DEV 环境构建的,另一个是针对 PROD 环境构建的。
my-app-dev.exe
my-app-prod.exe
一个 VERSION 参数总是传递到包含以下两种格式之一的构建版本的 Inno 构建脚本中:
"1.0.0"
"1.0.0-DEV"
在 [Files]
部分中,如果 VERSION 的当前值包含 DEV 后缀,但包括 my-app-prod.exe 如果没有?
我认为 Check
参数是解决此问题的方法,但我什至无法使最简单的情况起作用。
例如,尽管 Check
函数明确返回 False
.
[Files]
Source: "my-app-dev.exe"; DestDir: {app}; Check: ShouldIncludeDev
function ShouldIncludeDev: Boolean;
begin
Result := False;
end;
也许我一定遗漏了一些基本的东西...
基于这个答案 (Inno Setup IDE and ISCC/ISPP passing define) 你可以这样做:
通过命令行参数传递值:
/DargDEV="DEV"
在你的
[Files]
部分你可以这样做:#ifdef argDEV Source: "my-app-dev.exe"; DestDir: {app}; #else Source: "my-app-prod.exe"; DestDir: {app}; #endif
备注
它使用 #ifdef
pre-processor 指令。