Wix 快速開發安裝包程序 (二)安裝包行爲 CustomAction

上一小節,主要介紹了構建最小級別的安裝包,這個安裝包所作的事情很簡單,主要是打包好一些文件,而後放到用戶機器的某個位置下面。c#

這個小節,主要是說安裝過程的各類行爲如何使用Wix編寫。windows

 

CustomActionsession

1. 使用內建元素 CustomAction測試

注意到咱們以前給用戶安裝過一個文件 FoobarAppl10.exe,這個文件在wix經過File元素指明,注意它的Id是FoobarEXEspa

那麼我想在安裝完成以後,運行這個exe,就能夠這樣寫:3d

如上,經過FileKey 找到要執行的文件。調試

還有一個例子,用NotePad打開安裝後的一個文件 Readme.txt,經過Property找到Notepad.exe, 而後再傳參數Readme.txt,這樣就能夠打開了。日誌

實際效果,安裝完成以後:code

 

2. 經過 CustomAction 注入c#代碼,並在安裝應用程序時執行blog

上面介紹的方法畢竟使用起來比較受限,wix容許咱們寫c# code 並在安裝時執行

1. 用VS建立工程

2. VS幫咱們添加了一個cs文件,注意wix能執行的方法都要加Attribute CustomAction

參數 session 至關於上下文環境,先測一個最簡單的方法,session.Log 方法,這個是在安裝包按安裝過程當中,向日志文件寫東西的接口。

更多的session信息參考微軟文檔,https://docs.microsoft.com/en-us/windows/win32/msi/session-object

3. 編譯完成後獲得產物 MyCsutomAction.CA.dll

4. 添加到咱們的安裝包工程裏

 

5. 添加一個文件,專門定義剛纔的CustomAction, 注意BinaryKey是爲了找到那個dll,DllEntry 是你要調用的方法名

 

6. 使用的地方

 

使用命令安裝作出來的安裝包,並指明生成日誌文件到當前目錄

;正常安裝
msiexec /i  SetupProject1.msi

;安裝後寫日誌,MyInstaller.log
msiexec /i  SetupProject1.msi  /l*v  MyInstaller.log

 

觀察日誌文件,發現CustomAction 已經被執行了

 

 

3. 調試安裝包和 CsutomAction 注入的代碼

實際開發中注入的c# 不可能沒有bug,除非它真的太簡單,因此必須得會調試

 

1. 爲了測試,加點Property在文件裏

2. 在c# custom action這邊,寫一句代碼,把VS啓動起來

 

3. 實際安裝中,會彈出用VS打開源代碼工程,選好了就能調試代碼。

注意session中能夠拿到以前定義的幾個Property,Name Age Address

相關文章
相關標籤/搜索