WiX安装程序在卸载时删除文件,但在升级时不删除

时间:2010-07-20 06:44:52

标签: wix windows-installer upgrade uninstall delete-file

我有一个安装了WiX安装程序的程序。

程序本身在[CommonAppDataFolder] \ [MyAppName] \目录中创建了许多文件。这些文件都具有相同的扩展名(让我们称之为.dat)。

升级上,我想保留这些文件 在卸载上,我想删除这些文件。

我目前正在删除这些文件:

<Directory Id='CommonAppDataFolder'>
  <Directory Id='MyCommonAppDataFolder' Name='MyAppName'>
    <Component Id='RemoveFilesComponent' Guid='71cb0cd8-8459-4a8f-89b7-f00977aa7b70'>
      <RemoveFile Id='RemoveFiles' Name='*.dat' On='uninstall'/>
    </Component>
  </Directory>
</Directory>

我有这个促进升级:

<InstallExecuteSequence>
  <RemoveExistingProducts After='InstallInitialize'/>
</InstallExecuteSequence>

现在,卸载时,.dat文件会被正确删除 但是,当我升级时,.dat文件也会被删除。我想因为升级是在以前版本上执行卸载。

我是否正确处理此问题?如何在升级时保留文件,同时在卸载时删除它们?

3 个答案:

答案 0 :(得分:4)

This thread可能会回答您的问题。

答案 1 :(得分:2)

您是否尝试过向RemoveExistingProducts添加条件?这就是我要做的。

<RemoveExistingProducts After='InstallInitialize'>(NOT UPGRADINGPRODUCTCODE) AND (Installed)</RemoveExistingProducts>

答案 2 :(得分:1)

一种选择是切换到次要更新。这有很多限制所以它并不像听起来那么容易。