如何在后续安装中复制文件?

时间:2014-02-25 18:07:05

标签: wix wix3.7

在Product.wxs中,我在MajorUpgrade中设置了Schedule =“afterInstallInitialize”,这样如果安装失败,它将回滚到以前的版本。

我们的Windows服务使用安装程序复制到已安装计算机的app.config。 我们通过在Product.wxs中包含以下行来实现此目的:

<Component Id="Config" Win64="yes">
        <File Source="$(var.WixWindowsService2012.TargetDir)WixWindowsService2012.exe.config"
              Name="WixWindowsService2012.exe.config"
              Vital="yes" KeyPath="yes" />
</Component>

我们只想在第一次安装时复制此app.config文件,我们不希望在后续安装中复制它。

当我在Product.wxs中注释掉上面的Component元素时,安装失败,因为在安装过程中,它会删除已安装文件夹上的app.config,并且由于Windows Service要求它运行,因此安装失败。

如果app.config已经存在,如何让安装不将app.config复制到已安装的文件夹?

谢谢。

1 个答案:

答案 0 :(得分:0)

问题是升级的RemoveExistingProducts正在删除文件,然后传入的升级会安装新的文件,如WiX邮件列表中所述。 RemoveExistingProducts需要在InstallFinalize之前和最后的InstallExecute之后。