通常我們安裝一個應用軟體的時候,都喜歡在桌面或開始菜單中添加快捷方式以便我們快速通路。現在我們就在上篇添加注冊資訊的基礎上為HelloWorld的安裝包添加安裝快捷方式。下面我們将以安裝開始菜單快捷方式為執行個體詳細地闡述一下Wix的關于安裝快捷方式的基礎知識。
開始菜單快捷方式的安裝目錄結構與應用軟體的實際安裝目錄結構不一樣。
ProgramMenuFolder是Windows Installer預定義的一個屬性,其值為目标機器的開始菜單目錄。Id為TARGETDIR的<Directory>必須是唯一的根目錄,于是第一個<Directory>就放在該根目錄下面。第二個<Directory>是在開始菜單目錄下建立一個名為HelloWorld的子目錄。
下面這小片段就是安裝開始菜單快捷方式的Wix代碼。
<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。
關于在桌面建立快捷方式的内容與上面差不多,在這裡就不多費敲鍵盤的手力了。
為了順道展示一下Feature樹,在這裡我們将建立開始菜單快捷方式和桌面快捷方式放在一個單獨的Feature。
然後,我們需要設定WixUI為WixUI_FeatureTree。
下面是一個完整Wix源檔案。

Product.wxs
将檔案儲存為Product.wxs,然後通過candle編譯和light連結,
就生成我們HelloWorld的安裝包HelloWorld.msi檔案了。
輕按兩下.msi檔案,在協定界面同意了協定并點下一步,我們就看到下面這樣的一個安裝界面,
看到Feature樹了吧。安裝成功後,在開始菜單和桌面都會看到命名為HelloWorld.exe的快捷方式了(雖然圖示有點挫,不過我們成功了)。
來,動手試試吧,感覺會很不一樣的噢!