【问题标题】:NSIS not extracting "ifnewer"NSIS 没有提取“ifnewer”
【发布时间】:2011-03-14 00:58:55
【问题描述】:

我使用的产品使用 NSIS 以外的安装程序。目前仍有一些客户拥有我们使用 NSIS 之前的产品版本。

现在他们正在尝试安装使用 NSIS 安装程序的我们软件的新版本。问题是,当尝试安装任何 NSIS 之前的安装程序版本时,某些文件不会被提取,这会导致我们的产品崩溃。

我试图查找并了解 NSIS 如何检查“ifnewer”,但似乎没有任何详细解释可以解决问题。

应该注意,从一个 NSIS 安装版本转到另一个版本可以正常工作。所以这是尝试安装我们的产品版本而不是使用 NSIS 安装的直接结果。

谢谢

【问题讨论】:

    标签: nsis


    【解决方案1】:

    旧安装程序是否存在上次修改日期问题? (将来等)

    【讨论】:

    • 我刚刚再次使用旧的安装程序进行了安装。最后修改的日期和时间与安装时间相同。使用新的 NSIS 安装程序,上次修改保持不变,唯一更改的是上次访问时间。这就是为什么我想知道 NSIS 如何处理对 ifnewer 的检查,如果它是最后修改的,应该没有问题。
    • 它在现有文件的WIN32_FIND_DATA.ftLastWriteTime上使用CompareFileTime函数(所以“新”文件需要比这个更新)
    • @Anders:“新”文件不会总是有当前时间的 LastWriteTime 吗?还是在进行 NSIS 编译之前存储文件的 LastWriteTime 并使用它进行比较?
    • 实际上,现在我想起来了,这真的不能解释问题,为什么在我们使用 NSIS 安装程序的产品副本上进行安装可以正常工作。假设该文件在用户使用它的不同时间被修改,那么即使安装了 NSIS,旧文件也可能比“新”文件更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多