在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复制到已安装的文件夹?
谢谢。
答案 0 :(得分:0)
问题是升级的RemoveExistingProducts正在删除文件,然后传入的升级会安装新的文件,如WiX邮件列表中所述。 RemoveExistingProducts需要在InstallFinalize之前和最后的InstallExecute之后。