C# 在WIX上,重新安装时如何从旧安装复制文件
我有一个使用WIX安装的产品。 这是我的安装顺序:C# 在WIX上,重新安装时如何从旧安装复制文件,c#,wix,C#,Wix,我有一个使用WIX安装的产品。 这是我的安装顺序: <InstallExecuteSequence> <RemoveExistingProducts Before="InstallInitialize" /> </InstallExecuteSequence> 据我所知,在重新安装时会删除整个旧版本。 这是我想要保留的行为,但我还想从中复制特定的文件 旧版本 我该怎么做?要想从新MSI的部署中实现您想要的功能几乎是不可能的,因为在删除需要提升权限的
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
</InstallExecuteSequence>
据我所知,在重新安装时会删除整个旧版本。
这是我想要保留的行为,但我还想从中复制特定的文件
旧版本
我该怎么做?要想从新MSI的部署中实现您想要的功能几乎是不可能的,因为在删除需要提升权限的现有产品之前,您无法执行自定义操作(如果您没有在UAC控制的文件夹(如prgram文件)中安装,这可能会起作用,但我从未尝试过这样做) 一种解决方法是通过创建引导程序来修改现有的MSI(我不知道这是否有效!)–请参阅此问题的答案: 当我以前编写安装程序时,我编写了一个自定义操作,在卸载时将文件复制到临时文件夹中(升级时新MSI会调用以前版本的MSI卸载),然后在新MSI安装时检查并清除此文件夹(升级部分)。如果您只是卸载(而不是升级),这种方法确实会留下很多文件挂起,但因为我只对配置文件感兴趣–这实际上非常有效,因为如果客户返回,我不会丢失他们的所有配置 当然,这并不能解决您眼前的问题,因为这只会在发布卸载时备份相关文件的版本后才开始工作——但在过去的3年中,它对我来说一直运行良好
HTH如果我能知道以前的安装文件夹是什么,我想我可以用file标记中的Source属性来完成