Wix学习整理(6)——安装快捷方式
来源:互联网 发布:vegas for mac破解版 编辑:程序博客网 时间:2024/06/06 09:35
一 为HelloWorld案例添加安装快捷方式
通常我们安装一个应用软件的时候,都喜欢在桌面或开始菜单中添加快捷方式以便我们快速访问。现在我们就在上篇添加注册信息的基础上为HelloWorld的安装包添加安装快捷方式。下面我们将以安装开始菜单快捷方式为实例详细地阐述一下Wix的关于安装快捷方式的基础知识。
首先,我们要定义好目录结构。
开始菜单快捷方式的安装目录结构与应用软件的实际安装目录结构不一样。
<Directory Id="ProgramMenuFolder"> <Directory Id="ApplicationProgramsFolder" Name="HelloWorld" /></Directory>
ProgramMenuFolder是Windows Installer预定义的一个属性,其值为目标机器的开始菜单目录。Id为TARGETDIR的<Directory>必须是唯一的根目录,于是第一个<Directory>就放在该根目录下面。第二个<Directory>是在开始菜单目录下创建一个名为HelloWorld的子目录。
接下来,就开始注明我们的快捷方式信息。
下面这小片段就是安装开始菜单快捷方式的Wix代码。
<DirectoryRef Id="ApplicationProgramsFolder"> <Component Id="ApplicationShortcut" Guid="68485251-0D3B-4EFC-8792-A721D4AE8AB7"> <Shortcut Id="StartMenuShortcut" Name="HelloWorld.exe" Description="My HelloWorld" Target="[INSTALLFOLDER]HelloWorld.exe" WorkingDirectory="INSTALLFOLDER" /> <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall" /> <RegistryValue Root="HKCU" Key="Software\Microsoft\HelloWorld" Name="StartMenuShortcut" Type="integer" Value="1" KeyPath="yes" /> </Component></DirectoryRef>
<DirectoryRef>元素引用了我们在开始菜单目录下定义的子目录HelloWorld,表明我们要安装的快捷方式就放在该HelloWorld子目录下。然后通过一个<Component>来包含我们的快捷方式(记得Component是Windows Installer安装的最小单元)。
通过<Shortcut>元素,我们就指定了我们要创建的快捷方式的信息。Name指定了快捷方式的名字;Description指定了快捷方式的描述信息,当鼠标移到该快捷方式上时,其会以ToolTip方式显示;Target指定了快捷方式引导的目标文件,其中[INSTALLFOLDER]解析出Id为INSTALLFOLDER的<Directory>所指向的目标目录的路径,所以本快捷方式将引导路径C:\Program Files\HelloWorld\下的HelloWorld.exe文件;WorkingDirectory则指定了该快捷方式的工作目录。
另外,如果我们想更改快捷方式的图标,我们需要通过一个<Icon>元素加载一个图标文件,然后通过<Shortcut>元素的Icon属性引用该图标文件即可。
<RemoveFolder>元素表明在卸载HelloWorld这个应用程序时(On=”uninstall”)将删除Id为ApplicatioinProgramsFolder的目录(即我们在开始菜单目录下创建的子目录HelloWorld)。
<RegistryValue>元素指定了一个在创建快捷方式时注册到注册表的信息。这是创建快捷方式时必需的元素,因为快捷方式不能作为一个Component的KeyPath。
关于在桌面创建快捷方式的内容与上面差不多,在这里就不多费敲键盘的手力了。
最后,我们需要将Component放到一个Feature中安装。
为了顺道展示一下Feature树,在这里我们将创建开始菜单快捷方式和桌面快捷方式放在一个单独的Feature。
<Feature Id="ShortcutFeature" Title="Shortcut" Level="1"> <Feature Id="StartMenuShortcutFeature" Title="StartMenuShortcut" Level="1"> <ComponentRef Id="ApplicationShortcut" /> </Feature> <Feature Id="DesktopShortcutFeature" Title="DesktopShortcut" Level="1"> <ComponentRef Id="DesktopShortcutComponent" /> </Feature></Feature>
然后,我们需要设置WixUI为WixUI_FeatureTree。
<UIRef Id="WixUI_FeatureTree" />
完整的Wix源文件
下面是一个完整Wix源文件。
将文件保存为Product.wxs,然后通过candle编译和light链接,
candle Product.wxslight Product.wixobj –out HelloWorld.msi –ext "C:\Program Files\WiX Toolset v3.6\bin\WixUIExtension.dll"
就生成我们HelloWorld的安装包HelloWorld.msi文件了。
二 验收我们的成果
双击.msi文件,在协议界面同意了协议并点下一步,我们就看到下面这样的一个安装界面,
看到Feature树了吧。安装成功后,在开始菜单和桌面都会看到命名为HelloWorld.exe的快捷方式了(虽然图标有点挫,不过我们成功了)。
来,动手试试吧,感觉会很不一样的噢!
- Wix学习整理(6)——安装快捷方式
- Wix学习整理(6)——安装快捷方式
- Wix学习整理(7)——在开始菜单中为HelloWorld添加卸载快捷方式
- Wix学习整理(7)——在开始菜单中为HelloWorld添加卸载快捷方式
- Wix学习整理(2)——HelloWorld安装添加UI
- Wix学习整理(5)——安装时填写注册表
- Wix学习整理(2)——HelloWorld安装添加UI
- Wix学习整理(5)——安装时填写注册表
- Wix学习整理(4)——关于WiX文件格式和案例HelloWorld的分析
- Wix学习整理(4)——关于WiX文件格式和案例HelloWorld的分析
- Wix学习整理(1)——快速入门HelloWorld
- Wix学习整理(1)——快速入门HelloWorld
- Wix学习整理(3)——关于Windows Installer和MSI
- Wix学习整理(3)——关于Windows Installer和MSI
- 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX
- Wix学习(一)
- Wix学习(二)
- Wix学习(三)
- 自定义view基础知识
- iOS与Unity3d的交互实现
- java提高篇(十四)-----关键字final
- mac下快速安装php的各个版本
- Maven依赖中的scope详解
- Wix学习整理(6)——安装快捷方式
- 判断某年是否是闰年 in Java
- 建一个别人不能碰的无敌文件夹
- 压力测试工具
- 杭电OJ2063 (基础二分图匹配)(月老降临)
- 单点登录实现方法
- Android JSON解析(JSONObject和JSONArray)
- 工厂模式--c++实现
- MyBatis 中调用存储过程的方式