识别NSIS中的文件更新

时间:2014-12-19 08:58:12

标签: nsis

在NSIS中,有什么方法可以确定在使用安装程序更新应用程序时是否从用户端修改了应用程序文件?

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

2 个答案:

答案 0 :(得分:2)

你可能有两种选择;您可以使用GetFileTime获取修改时间或使用类似MD5 pluginmd5dll::GetMD5File)的内容。

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

答案 1 :(得分:0)

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

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

  1. 使用“属性”>“高级”>取消选中“文件已准备好存档”,取消设置PC中任何文件的存档位
  2. 使用适当的工具编辑并保存文件。例如,文本文件的记事本。

请注意,文件的存档位已设置,表明该文件已被修改。

所以方法将是这样的:

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