yuv*_*val 2 installation inno-setup
我知道如何使用这种方法覆盖文件
[Files]
Source: "Project\*"; DestDir: "{app}"; \
Flags: ignoreversion recursesubdirs onlyifdoesntexist; Permissions: everyone-full
Run Code Online (Sandbox Code Playgroud)
但是,当我使用“安装或更改程序”部分中的“更改”选项更改程序时,我不想覆盖这些文件。
我为我的安装程序创建更改选项,如下所示:
[setup]
AppModifyPath="{srcexe}" /modify=1
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
首先,你的代码似乎是错误的。使用该onlyifdoesntexist标志,文件永远不会被覆盖,与您声称的相反。因此,对于大多数目的,只需使用此标志即可。
无论如何,解决方案是创建两个[Files]条目,一个覆盖,另一个不覆盖。并使用 Pascal 脚本来选择相应安装模式的条目。
[Files]
Source: "Project\*"; DestDir: "{app}"; Flags: ... onlyifdoesntexist; Check: IsUpgrade
Source: "Project\*"; DestDir: "{app}"; Flags: ...; Check: not IsUpgrade
Run Code Online (Sandbox Code Playgroud)
实施示例IsUpgrade:
[Files]
Source: "Project\*"; DestDir: "{app}"; Flags: ... onlyifdoesntexist; Check: IsUpgrade
Source: "Project\*"; DestDir: "{app}"; Flags: ...; Check: not IsUpgrade
Run Code Online (Sandbox Code Playgroud)
另请参阅Pascal 脚本:检查参数。
| 归档时间: |
|
| 查看次数: |
4631 次 |
| 最近记录: |