[英]MSI Installer Data Properties
我正在為一個正在從事的大型項目進行MSI安裝,我很想知道有關我所看到的此屬性的更多信息。
它們是[TARGETDIR]之類的東西,或包裹在[[PROPERTNAMEHERE]“中的任何東西。 我正在嘗試找出它們是否在任何地方都是這些的列表?
順便說一句,是否仍然可以通過自定義操作訪問所有這些屬性。 我已經查看了Context.Parameters集合,但在那里什么都沒有看到。 我已經將/ name =“ [TARGETDIR] \\”作為CustomActionData傳遞給customaction,但這還不夠。
謝謝
史蒂夫
使用基於MSI的軟件包時,了解屬性非常重要。 首先,您應該知道有兩種屬性,即公共屬性和私有屬性 。 使用自定義操作時,應始終使用公共屬性,以避免在安裝過程從InstallUI Sequence傳遞到InstallExecute Sequence時重置其值。
同樣, 非常重要的是 ,自定義操作無法在延遲運行時獲取/設置屬性。 只有立即(即非延遲) 自定義操作才能獲取/設置屬性值。
有一個例外,當運行延遲的自定義操作時,您可以從名為“ CustomActionData ”的特殊屬性中獲取值。
現在,無論如何考慮自定義動作,您都可以編寫C ++,C#或VBScript自定義動作來在安裝過程中獲取/設置屬性。
不建議在正式的應用程序版本中使用VBScript,但可以將其用於需要內部使用的快速工具。
對於C ++自定義操作,您將獲得一個DLL,從中可以導出一個或多個方法,以在觸發您的自定義操作時進行調用。 請注意,功能簽名不同於標准DLL,請仔細分析鏈接的示例。
如果更方便的話,您也可以獲得編寫C#代碼的類似DLL。
確保您不要嘗試將標准DLL作為自定義操作來運行非常重要,某些商業/免費安裝創作工具也支持該功能,但並非全部。 如果您打算編寫DLL自定義操作,則最好從一開始就使用上面鏈接的兩個示例(C ++ / C#)之一執行此操作。
發布此消息幾秒鍾后,我發現了我要查找的關於屬性列表的內容: http : //msdn.microsoft.com/zh-cn/library/windows/desktop/aa370905(v=vs.85).aspx
現在我正在尋找一種通過代碼訪問這些內容的方法?
如果您使用的是WIX ...
首先要回答您的旁注-您可以從自定義操作中訪問自定義值(假設您知道如何設置自定義操作...)-查看您的會話對象(自定義操作的參數)-有一個帶有索引器的CustomActionData。 通過指定來指定要使用的屬性的名稱
session.CustomActionData["INSTALLLOCATION"]
但是,您需要先將該屬性添加到自定義操作中,然后才能訪問它-為此,您需要告訴wix進行設置...
<CustomAction Id="UNIQUEID" Return="check" Property="YourCustomActionNameInWix" Value="INSTALLLOCATION=[INSTALLLOCATION]" />
要回答您的另一個問題-不,我認為您無法在必須編寫腳本的代碼中獲得這些值。
HTH
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.