在NSIS中识别文件更新

在NSIS中识别文件更新,nsis,Nsis,在NSIS中,在使用安装程序更新应用程序时,是否有任何方法可以识别是否从用户端修改了应用程序文件 我的要求是,在更新应用程序时,我们需要发出警告消息,以防用户修改应用程序文件。如果“是”,我们需要更新文件,否则我们不应该更新。您可能有两个选择;您可以使用GetFileTime或类似(md5dll::GetMD5File)的方法获取修改后的时间 您可以在安装时将原始值保存在.ini中,然后在更新时与这些值进行比较…使用存档属性。存档属性是专门用于此目的的 以下步骤演示了存档位的行为: 使用属性>高

在NSIS中,在使用安装程序更新应用程序时,是否有任何方法可以识别是否从用户端修改了应用程序文件


我的要求是,在更新应用程序时,我们需要发出警告消息,以防用户修改应用程序文件。如果“是”,我们需要更新文件,否则我们不应该更新。

您可能有两个选择;您可以使用
GetFileTime
或类似(
md5dll::GetMD5File
)的方法获取修改后的时间


您可以在安装时将原始值保存在.ini中,然后在更新时与这些值进行比较…

使用存档属性。存档属性是专门用于此目的的

以下步骤演示了存档位的行为:

  • 使用属性>高级>取消勾选“文件已准备好存档”,取消设置电脑中任何文件的存档位
  • 使用适当的工具编辑并保存文件。例如,文本文件的记事本
  • 请注意,文件的存档位已设置,表示此文件已修改

    因此,方法如下:

  • 取消NSIS编译器PC中所有必要源文件的存档位
  • 在NSIS脚本中,使用[File/a]将源文件提取到目标计算机,保留属性
  • 重新安装时,使用GetFileAttributes检测文件是修改的还是原始的,并采取相应的步骤