使用Wix卸载MSI之前的自定义操作
发布时间:2020-12-14 05:54:42 所属栏目:Windows 来源:网络整理
导读:我正在使用Wix来编写我自己的MSI安装程序.我需要在卸载产品之前,但在删除任何注册表值或文件之前运行自定义操作.我做了以下(只是为了尝试): Property Id='CALC'Calc.exe/PropertyCustomAction Id='BeforeUninstall01' Property='CALC' ExeCommand='' Return
我正在使用Wix来编写我自己的MSI安装程序.我需要在卸载产品之前,但在删除任何注册表值或文件之前运行自定义操作.我做了以下(只是为了尝试):
<Property Id='CALC'>Calc.exe</Property> <CustomAction Id='BeforeUninstall01' Property='CALC' ExeCommand='' Return='check' /> <InstallExecuteSequence> <Custom Action='BeforeUninstall01' After='InstallInitialize'>Installed</Custom> </InstallExecuteSequence> 如果我选择从控制面板卸载它,但如果我运行我的MSI(虽然它已经安装),它仍然有效,无论如何都会触发BeforeUninstall01自定义操作,它不应该. 知道如何改变这种状况吗? 解决方法
您选择条件“已安装”.
根据您的代码,使用内置属性“REMOVE”的所需条件将导致: <InstallExecuteSequence> <Custom Action='BeforeUninstall01' After='InstallInitialize'>REMOVE="ALL"</Custom> </InstallExecuteSequence> 这也允许您(即使没有必要)卸载单个功能,但不允许您在没有自定义操作(ca)的情况下卸载整个产品. 你的条件总是开始ca,但不是第一次安装(包括修复,更新,卸载,修改,补丁等等.这不是,你需要的,确实. Reubz的状况略有不同,这将始终开始,但不是首次安装而不是重大升级期间,这不是真正的改进. 关于排序: <CustomAction Id='BeforeUninstall01' Property='CALC' ExeCommand='' Execute="deferred" Impersonate="no" Return="check" /> (我不是WiX向导,只有我非常了解MSI,所以我没有检查过你的WiX代码的任何部分,只检查了问题.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-vista – 如何防止Vista对patch.exe升级?
- windows – 如何从打印作业中获取副本数量?
- 项目模板中的listview可视状态管理器(WinRT,Metro,XAML)
- windows – 为什么我的远程桌面服务器无法正常使用许可服务
- windows – 如何通过PowerShell的串行控制台电缆连接到思科
- windows-server-2008-r2 – Windows Server的就地升级(更新
- type-conversion – 如何在Go中将[4] uint8转换为uint32?
- windows-server-2008 – 具有错误子网掩码的VPN
- 批处理文件 – 从Windows批处理文件中的无效GOTO命令中恢复
- Windows上的应用程序颜色(背景,按钮等)指南?
推荐文章
站长推荐
- UWP和Windows Phone 8.1上的Xamarin.Forms中的We
- 在Windows上为Ant设置Java路径
- remote-desktop – 如何禁用Administrator的RDP访
- 像Windows备份工具一样的Rsync
- windows-event-log – 事件日志>过滤器当前日志>
- windows-server-2003 – DNS整合,如何服务内部网
- windows-server-2003 – 远程桌面问题
- if / then / else语句在Windows批处理
- 部署 – 为x86 windows系统捆绑的JavaFX exe
- 本地化 – “en”vs“en-US”作为Windows 10 UWP
热点阅读