2
我正在考慮使用WiX安裝程序來實施數據庫升級。所以會有幾個組件與SqlScript
元素。但我不確定是否可以依靠組件執行順序。我可以確保組件安裝順序嗎?
WiX總是將組件添加到MSI組件表中,以便它們在片段中定義? Windows安裝程序是否保證按照組件表的順序執行它們?
我正在考慮使用WiX安裝程序來實施數據庫升級。所以會有幾個組件與SqlScript
元素。但我不確定是否可以依靠組件執行順序。我可以確保組件安裝順序嗎?
WiX總是將組件添加到MSI組件表中,以便它們在片段中定義? Windows安裝程序是否保證按照組件表的順序執行它們?
不,MSI不按任何給定順序處理組件。這是非確定性的。但是,由WiX提供的SQL腳本自定義操作按給定順序處理腳本。它由SqlScript @ Sequence屬性決定。
當CustomActions評估它將決定哪些腳本需要執行基於哪些組件正在安裝。然後,它會根據Sequence屬性對結果進行排序,並安排它的安排。
我傾向於根據安裝類別使用100 200 300 400之類的東西。
100 - 創建空數據庫
200 - 創建表
300 - 應用約束
400 - 加載數據
500 - 創建等特效對象和觸發
的想法是你不必微管理101和102,而只是把它作爲安裝階段。