gpt4 book ai didi

c# - 在 WIX 上,如何在重新安装时从旧安装复制文件

转载 作者:行者123 更新时间:2023-11-30 17:55:34 51 4
gpt4 key购买 nike

我有一个使用 WIX 安装的产品。这是我的安装顺序:

<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
</InstallExecuteSequence>

据我了解,重新安装后会删除整个旧版本。这是我想保留的行为,但我也想从复制特定文件旧版本。

我该怎么做?

最佳答案

部署新 MSI 几乎是不可能的,因为您无法在需要提升权限的 RemoveExistingProducts 之前执行自定义操作(如果您没有安装在像 prgram 文件这样的 UAC 控制文件夹中,这可能会起作用 -但我从未尝试过)。

一种解决方法是通过创建 Bootstrap 来修改现有的 MSI(我不知道这是否有效!)——请参阅此问题的答案:How to execute Custom Action before RemoveExistingProducts with After="InstallValidate" in WiX

当我过去编写安装程序时,我编写了一个自定义操作,在卸载时将文件复制到一个临时文件夹(升级时新 MSI 会调用以前版本的 MSI 的卸载)和然后在安装新的 MSI 时检查并清除此文件夹(升级部分)。如果您只是卸载(而不是升级),这种方法确实会留下很多文件,但因为我只对配置文件感兴趣——这实际上效果很好,就好像客户返回时我不会丢失他们的所有配置一样。

这当然不能解决您的直接问题,因为它只会在分发了一个在卸载时备份相关文件的版本后才开始工作——但在过去的 3 年里它对我来说效果很好。

HTH

关于c# - 在 WIX 上,如何在重新安装时从旧安装复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14975296/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com