Wix学习整理(7)——在开始菜单中为HelloWorld添加卸载快捷方式

通过前面的几篇随笔,我们已经给我们的HelloWorld提供了填写注册表信息,以及开始菜单快捷方式和桌面快捷方式。这些在安装时添加的内容,在卸载时也会自动地删除。但是,到目前为止,我们的卸载只有两种方式:通过原始安装包或控制面板中的卸载或更改程序。现在,我们来学习Wix如何为我们的HelloWorld在安装时在开始菜单中提供卸载的快捷方式。

一 添加卸载快捷方式

添加卸载的快捷方式也是通过<Shortcut>元素来实现的,关于如何添加快捷方式的更多详情,请参考本系列上一篇,在这里我们就讲讲添加卸载快捷方式的<Shortcut>元素的具体内容。

<Shortcut Id="UninstallHelloWorld"
          Name="Uninstall"
          Target="[SystemFolder]msiexec.exe"
          Arguments="/x [ProductCode]"
          Description="Uninstall HelloWorld" />

其中,Target指出了可运行程序msiexec.exe的位置,msiexec.exe是Windows Installer提供的客户端安装卸载程序服务。SystemFolder是Windows Installer预定义的属性,其值表示目标机器的System32文件夹所在路径,通常为C:\Windows\System32。Argument将安装包的ProductCode传递给msiexec.exe,告知要卸载的是哪一个产品。

完整的WiX源文件请看下面的Product.wxs,

Product.wxs

通过运行编译和链接命令,

candle Product.wxs
light Product.wixobj –out HelloWorld.msi –ext "C:\Program Files\WiX Toolset v3.6\bin\WixUIExtension.dll"

就生成了我们的HelloWorld.msi安装包文件。

二 验收我们的成果

双击HelloWorld.msi文件,安装HelloWorld。安装完成后,在开始菜单的所有程序下的HelloWorld目录下就看到一个命名为Uninstall的卸载快捷方式,如下图所示, 

单击Uninstall快捷方式,就可以快捷地卸载我们安装的HelloWorld了。然后,你再去查看一下注册表中安装时填写的信息以及安装的开始菜单快捷方式和桌面快捷方式是否都已被删除。

是的,我们要做到无残留卸载!

posted on   lienhua34  阅读(4119)  评论(12编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?

导航

< 2012年10月 >
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10
点击右上角即可分享
微信分享提示