2011-02-01 137 views

回答

2

正如克里斯畫家指出MSI文件中,你可以看到正在發生的事情在基於微星表的內容安裝的情況發生透​​明感This is one of the key benefits of MSI that you can find described here自定義表格擴展了此內置透明度以包含由它們中指定的操作提供的自定義操作。它們還允許重用自定義操作代碼,因爲操作不是硬編碼的,而是在表格中指定。

雖然在一家大公司工作,我寫了能夠做幾件非標MSI任務的自定義操作DLL如創建本地用戶和組創建股除其他事項外組自定義權限。通過定義在自定義表格中應該做什麼,我們可以完成我們需要做的事情,而無需在自定義操作中對任何內容進行硬編碼一旦創建,用戶創建的自定義操作可以創建在自定義表中指定的任何用戶。

定製表在_Validation table中定義,以便爲表格中的每列設置可接受的值範圍和類型。還可以連接定製ICE驗證規則以檢測定製表中的錯誤。需要解析目錄的自定義操作可以將自定義表中的外鍵添加到目錄表中,以便能夠解析安裝目錄。您還可以將外鍵添加到其他表格,包括其他自定義表格。

簡而言之,自定義表格由自定義操作使用,並且在用於實現自定義操作的靈活性和重用時非常有效。然而,實施是一項重大努力。 The WiX toolkit使用大量的自定義表格來完成非標準的MSI任務,例如IIS安裝。他們的源代碼是開源的,並會告訴你如何編寫由定製表提供的自定義操作。它涉及到相當多的MSI技術,例如排序和從客戶端到服務器進程傳遞值(提升,延遲模式自定義操作),但所有這些都應該可以從WiX「借用」 - 或者更好,使用WiX自己的現成的自定義操作。

如果您具備創建此功能的技能,我認爲將您的創作與WiS社區分享將是非常有益的。這也將爲您提供一批極具天賦的開發人員,幫助您追蹤代碼和實施中的任何錯誤。