當Burn檢測到它的某個軟件包已安裝時, 如何找到檢測到的軟件包的安裝路徑?找到檢測到的軟件包的安裝路徑
IBootstrapperApplication上的任何事件似乎都沒有公開,Google也沒有發現任何東西。謝謝!
當Burn檢測到它的某個軟件包已安裝時, 如何找到檢測到的軟件包的安裝路徑?找到檢測到的軟件包的安裝路徑
IBootstrapperApplication上的任何事件似乎都沒有公開,Google也沒有發現任何東西。謝謝!
與答案內容後評論 - 我編輯此太長...
燒傷不知道(也不需要知道)約比什麼在*Package
其他程序包安裝什麼元件。
你是什麼意思的「安裝路徑的包」?如果Windows Installer設置爲 - 請參閱here,則Windows Installer可以報告InstallLocation
的MsiPackage
。
對於ExePackage
,檢測只是包定義的是/否檢查。
對於MsiPackage
,Windows安裝程序給出了是/否的答案,但確實有一個API用於刻錄不需要的其他信息。 你的問題涉及到MsiPackage
?
你想解決什麼問題?
UPDATE:
Windows安裝程序包實際上並沒有一個安裝位置;組件已安裝位置。將所有或大多數組件的位置組織到通用目錄樹中並允許選擇根目錄是一種非常普遍的做法。組件可以分組爲不同的功能,某些安裝程序允許爲每個功能選擇不同的根目錄,但機制相同。一旦計算出每個組件的目錄後,這些根目錄對Windows Installer就沒有任何意義。
如果目錄需要維護,它們必須保存 - 通常保存到註冊表中供應商/應用程序特定位置。一個WiX產品可以使用write這個信息並使用RegistrySearch來讀取它。 Wix Bundle可以使用util:RegistrySearch來閱讀它。如果沒有獲得所需的特定信息,則WiX產品可以使用自定義操作,而WiX Bundle可以使用自定義的BootstrapperApplication。兩者都可以使用Windows Installer API通過C,COM或.NET(使用WiX的DTF庫)。
因此,希望您正在編寫軟件包版本「1」,並且可以使用內置的註冊表工具記錄您需要的位置。
是的,它是我試圖找到的已安裝的MsiPackage的路徑。 我在修改安裝時顯示有問題的MSI的自定義功能選擇樹,並希望顯示MSI本身的路徑(並允許更改)。 – Simon
非常感謝解釋,幫助了很多。我會猜測會去註冊表路線。 :-) – Simon