Installation 需要对Inno安装程序中的一个特定文件进行覆盖确认,无条件在目录中安装其他文件

Installation 需要对Inno安装程序中的一个特定文件进行覆盖确认,无条件在目录中安装其他文件,installation,inno-setup,Installation,Inno Setup,我有一个包含84个文件的目录(Configurationfiles)。其中一个文件包含用户将修改的数据(UserData.json)。这个文件可能在那里,也可能不在那里,但是如果是的话,我不想丢失这些数据,我正在努力让安装过程对用户友好 我正在尝试修改执行以下所有操作的现有安装脚本: 如果目录中没有文件,请复制所有文件 如果存在文件,则覆盖除UserData.json以外的所有文件 如果缺少UserData.json复制默认值UserData.json 如果出现UserData.json,则提示

我有一个包含84个文件的目录(
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)标志,它工作正常。