在Check参数中使用时,两个或多个函数不起作用

时间:2017-09-16 05:10:14

标签: inno-setup

我一直试图在Check中完成两项功能。当我使用多个函数时,它们都不起作用。例如:

[Files]
Source: MyProg.exe; DestDir: "{app}"; Flags: ignoreversion; Check: portable and install;  
Source: MyProg.dll; DestDir: "{app}"; Flags: ignoreversion; Check: portable and install;  
Source: MyProg.ini; DestDir: "{app}"; Flags: ignoreversion; Check: portable and install;

当我只使用一个便携式或安装支票时,它可以工作,虽然我知道我可以重复源Dir并将其他支票放在这样:

[Files]
Source: MyProg.exe; DestDir: "{app}"; Flags: ignoreversion; Check: portable;  
Source: MyProg.dll; DestDir: "{app}"; Flags: ignoreversion; Check: portable;  
Source: MyProg.ini; DestDir: "{app}"; Flags: ignoreversion; Check: portable;

Source: MyProg.exe; DestDir: "{app}"; Flags: ignoreversion; Check: install;  
Source: MyProg.dll; DestDir: "{app}"; Flags: ignoreversion; Check: install;  
Source: MyProg.ini; DestDir: "{app}"; Flags: ignoreversion; Check: install;

但由于我有很多文件,我想在一个Check中使用多个函数,以便不在[Files]部分复制和粘贴过多的源代码行。

1 个答案:

答案 0 :(得分:1)

此:

[Files]
Source: MyProg.exe; DestDir: {app}; Check: portable and install  

不相同到:

[Files]
Source: MyProg.exe; DestDir: {app}; Check: install  
Source: MyProg.exe; DestDir: {app}; Check: portable  

第一个说安装文件,当portable install都为真/选择时。什么可能永远不会发生。

后者说安装文件,当portable install为真/选择时

因此,您希望使用or运算符代替and

[Files]
Source: MyProg.exe; DestDir: {app}; Check: portable or install