加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

WIX / MSI – 卸载时是否可以创建一个包装,该包保留安装前存在的

发布时间:2020-12-14 03:57:32 所属栏目:Windows 来源:网络整理
导读:我正在使用WIX创建安装标准文件的MSI(没有exe,com,DLL等).在某些用户计算机上,MSI中的某些文件可能已经存在.在安装过程中这不是问题,因为MSI会自动更新较旧的文件等.但是,在卸载过程中我遇到了问题. 用一个例子解释是最容易的: Joe Bloggs在他们的计算机上
我正在使用WIX创建安装标准文件的MSI(没有exe,com,DLL等).在某些用户计算机上,MSI中的某些文件可能已经存在.在安装过程中这不是问题,因为MSI会自动更新较旧的文件等.但是,在卸载过程中我遇到了问题.

用一个例子解释是最容易的:
Joe Bloggs在他们的计算机上有“文件B”.此文件尚未由MSI程序包安装,并且无论如何都不会被Microsoft Installer系统跟踪.它只是计算机上的普通文件.

Joe Bloggs下载并安装我的包,其中包含“文件A”,“文件B”和“文件C”.当他安装我的软件包时,Microsoft Installer系统会检查“文件B”并确定它与我的软件包中的“文件B”相同.因此它不会替换“文件B”,但它会标记文件B是安装的一部分的MSI组件.

Joe Bloggs然后决定他不喜欢我的软件,所以卸载我的软件包.当他这样做时,尽管在我的软件包安装之前存在“文件B”,但所有3个文件都被删除.我的调查已经确定这是因为包含“文件B”的组件被标记为已安装.因此,当您卸载程序包时,它将删除“文件B”.

这有点技术性,但希望有一位知道解决方案的WIX / MSi专家.

谢谢

吉姆

解决方法

这通常通过备份和还原自定义操作来完成.

基本上,您编写了一个自定义操作,可以根据收到的参数复制某些文件.然后,您可以在安装程序中使用此自定义操作两次:

>在安装期间将原始文件复制到备份文件夹中(通常是临时文件或应用程序数据)>在卸载期间,将备份文件复制回原始位置

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读