WIX / MSI – 卸载时是否可以创建一个包装,该包保留安装前存在的
我正在使用WIX创建安装标准文件的MSI(没有exe,com,DLL等).在某些用户计算机上,MSI中的某些文件可能已经存在.在安装过程中这不是问题,因为MSI会自动更新较旧的文件等.但是,在卸载过程中我遇到了问题.
用一个例子解释是最容易的: Joe Bloggs下载并安装我的包,其中包含“文件A”,“文件B”和“文件C”.当他安装我的软件包时,Microsoft Installer系统会检查“文件B”并确定它与我的软件包中的“文件B”相同.因此它不会替换“文件B”,但它会标记文件B是安装的一部分的MSI组件. Joe Bloggs然后决定他不喜欢我的软件,所以卸载我的软件包.当他这样做时,尽管在我的软件包安装之前存在“文件B”,但所有3个文件都被删除.我的调查已经确定这是因为包含“文件B”的组件被标记为已安装.因此,当您卸载程序包时,它将删除“文件B”. 这有点技术性,但希望有一位知道解决方案的WIX / MSi专家. 谢谢 吉姆 解决方法
这通常通过备份和还原自定义操作来完成.
基本上,您编写了一个自定义操作,可以根据收到的参数复制某些文件.然后,您可以在安装程序中使用此自定义操作两次: >在安装期间将原始文件复制到备份文件夹中(通常是临时文件或应用程序数据)>在卸载期间,将备份文件复制回原始位置 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-installer – 你能强迫MSI永远是管理员吗?
- WIN10下安装 NGINX+PHP+MYSQL(WNMP) 环境
- exchange – 为其他人设置Out of Office消息
- 如何在多台Windows机器上自动更新非Microsoft软件?
- 脚本 – 获取WINS服务器统计信息
- windows-server-2003 – MSDEPLOY是否为审计目的生成其操作
- 连接到Windows中的命名管道,不同的用户帐户
- windows下用navicat远程链接虚拟机Linux下MySQL数据库
- .net – 可以按需下载先决条件的好安装程序
- windows-server-2008 – 适用于大量打印机的Windows Server