WiX安装程序 - 更新问题

时间:2012-04-24 09:11:32

标签: wix

我正在尝试配置WiX,以便在更新期间不从安装目录中删除某些配置文件。

我搜索过并搜索过,但我被卡住了......

这就是我所拥有的。

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" ... >
  <Product Id="PRODUCT_GUID" ...
     UpgradeCode="UPGRADE_GUID">
    ...
    <Upgrade Id="$(var.UpgradeCode)">
       <UpgradeVersion OnlyDetect="no" Property="REMOVEOLDVERSION" Maximum="$(var.ProductVersion)" IncludeMaximum="no" />
       <UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="$(var.ProductVersion)" IncludeMinimum="no" />
    </Upgrade>


    <InstallExecuteSequence>
      <RemoveExistingProducts After="InstallFinalize" />
    </InstallExecuteSequence>
    ...

文件如下:

   <Component Id="ConfigurationFiles" Guid="ConfigurationFiles_GUID" NeverOverwrite="yes">
      <File Id="SomeConf" Source=... />

    </Component>

我做错了什么?

1 个答案:

答案 0 :(得分:4)

如果问题确实是配置文件的删除,那么我认为您打算指定Permanent="yes"而不是NeverOverwrite="yes"

但是,如果安装程序的新版本没有安装配置文件(这就是为什么它们在升级后消失的原因,我猜)那么它们应该没有必要吗?在这种情况下,我不确定为什么要保留配置文件。有效地将它们标记为永久性使其无法卸载它们。

如果您实际上担心用户对覆盖对这些配置文件所做的更改,那么我认为Windows Installer已经正确处理了这个问题。 File Versioning Rules已经有一个基于文件修改时间戳的“用户数据”概念,并且不会覆盖这些文件。