【问题标题】:InstallShield how to never overwrite a fileInstallShield如何从不覆盖文件
【发布时间】:2012-03-05 08:04:36
【问题描述】:

我的文件结构(FireBird 数据库)中有一个文件,一旦第一次安装,就永远不会再被覆盖。这似乎是一个很容易的任务,但我浪费了大量的时间来尝试寻找答案,但徒劳无功。

如果您右键单击文件并选择“属性”,则只有一个“始终覆盖”复选框。我会简单地保持版本号相同,我被告知可以防止文件被覆盖,但这在我的情况下可能很危险,在实际的文件属性中,甚至没有地方可以放置版本号。

我以为这将是一个相当简单的解决方案,但我当然还没有找到一个。

提前感谢您的帮助,伙计们。你摇滚。

【问题讨论】:

    标签: windows-installer installshield installshield-2009


    【解决方案1】:

    两种方法:

    1) InstallShield 从不覆盖文件的“最简单”的方法是从一开始就从不安装它。将其安装为 a.txt 并让您的应用程序在第一次运行时将其复制到 b.txt,我 nstallShield 一开始就永远不会知道 b.txt。

    2) 在 InstallShield 中创建一个组件并将您的数据库添加为密钥文件。据推测,数据库的内容会随着时间的推移而变化,并导致创建日期和修改日期不同。在这种情况下,InstallShield(实际上是 Windows Installer)的默认文件版本控制规则 (OMUS) 规定文件不会被覆盖。

    3) 如果 #2 仍然无法正常工作,则将组件上的 Never Overwrite 属性设置为 Yes。

    请记住,文件成本计算基于 KeyFile。无论密钥文件如何评估,组件中的所有其他文件都将执行相同的覆盖操作。 “始终覆盖”是“版本谎言”,我们错误地告诉 MSI 文件 Verison 是 65535.0.0.0,因此创建/修改规则被版本化胜过非版本化文件规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 2016-03-15
      • 2013-05-11
      • 2017-07-31
      • 1970-01-01
      • 2016-02-12
      相关资源
      最近更新 更多