Installation 需要对Inno安装程序中的一个特定文件进行覆盖确认,无条件在目录中安装其他文件
我有一个包含84个文件的目录(Installation 需要对Inno安装程序中的一个特定文件进行覆盖确认,无条件在目录中安装其他文件,installation,inno-setup,Installation,Inno Setup,我有一个包含84个文件的目录(Configurationfiles)。其中一个文件包含用户将修改的数据(UserData.json)。这个文件可能在那里,也可能不在那里,但是如果是的话,我不想丢失这些数据,我正在努力让安装过程对用户友好 我正在尝试修改执行以下所有操作的现有安装脚本: 如果目录中没有文件,请复制所有文件 如果存在文件,则覆盖除UserData.json以外的所有文件 如果缺少UserData.json复制默认值UserData.json 如果出现UserData.json,则提示
Configurationfiles
)。其中一个文件包含用户将修改的数据(UserData.json
)。这个文件可能在那里,也可能不在那里,但是如果是的话,我不想丢失这些数据,我正在努力让安装过程对用户友好
我正在尝试修改执行以下所有操作的现有安装脚本:
UserData.json以外的所有文件
UserData.json
复制默认值UserData.json
UserData.json
,则提示用户覆盖UserData.json
,如果是,则覆盖,如果否,则不覆盖#define ExcludeFiles "UserData.json"
Source: ..\..\PROV\4200701\BIN\*.*; Excludes: {#ExcludeFiles }; DestDir: {app}\BIN; \
Flags: ignoreversion recursesubdirs skipifsourcedoesntexist;
Source: ..\..\PROV\4200701\BIN\Configurationfiles\UserData.json; \
DestDir: {app}\BIN\Configurationfiles;
Flags: ignoreversion onlyifdoesntexist confirmoverwrite skipifsourcedoesntexist;
我想我的旗帜设置不正确。但我不确定。有人知道我哪里出了问题吗?你永远无法得到确认,因为
onlyifdextersist
阻止confirmoverwrite
生效
我不认为你所说的“所有的文件都被复制了”。当我测试您的脚本时,我得到:
2020-09-26 16:51:21.625--文件条目--2020-09-26 16:51:21.626 Dest文件名:C:\Users\pimpo\AppData\Local\My Program\BIN\Configurationfiles\UserData.json
2020-09-26 16:51:21.626我们文件的时间戳:2020-09-26 16:49:30.000
2020-09-26 16:51:21.626目标文件存在。
2020-09-26 16:51:21.626由于“onlyifdoesntexist”标志而跳过。
如果删除
onlyIfDeesnTexist
,则脚本应执行所需操作
2020-09-26 16:57:41.066--文件条目--2020-09-26 16:57:41.067 Dest文件名:C:\Users\pimpo\AppData\Local\My Program\BIN\Configurationfiles\UserData.json
2020-09-26 16:57:41.067我们文件的时间戳:2020-09-26 16:49:30.000
2020-09-26 16:57:41.067目标文件已存在。
2020-09-26 16:57:41.067现有文件的时间戳:2020-09-26 16:49:30.000
2020-09-26 16:57:41.067信息框(是/否):
C:\Users\pimpo\AppData\Local\My Program\BIN\Configurationfiles\UserData.json 该文件已存在。 您希望安装程序覆盖它吗?
2020-09-26 16:57:43.055用户选择是。
2020-09-26 16:57:43.055安装文件。
2020-09-26 16:57:43.062已成功安装该文件
您可能还需要删除
ignoreversion
,因为它对.json
文件没有影响。这可能会使其他人感到困惑。skipifsourcedoesntexsist
也有问题。谢谢,我删除了(onlyifdoesntexsist)标志,它工作正常。