我正在使用C#爲我正在進行的項目安裝和配置應用程序,並且我很想知道內部組織一切的最佳方法是什麼。安裝程序嚮導的結構
要求:
- 部署單一的可執行文件,捆綁它沒有其他文件。
- 必須支持每個面板上的自定義配置步驟,這些步驟最終生成了XML配置文件。
- 某些步驟可能會根據安裝程序流程中所做的某些選擇而被跳過。
- 必須支持基於從我的一個庫中的類反饋的信息的動態配置屏幕。
這是我的原型的描述:
- 大形式與一羣面板控制的,該向導的每一個代表一個「屏幕」。每個都被適當地命名。
- 每個「屏幕」的一個類,派生自我定義的基本類型。當某些事件發生時,我調用它的具體方法(例如
Enter
,Back
,Forward
)。 - 狀態存儲爲
Dictionary<string,object>
,將其傳遞給每個屏幕。最後的屏幕(實際的「安裝...」屏幕)從此讀取配置並將其轉儲到XML文件中。 - 每個屏幕的代碼負責處理「Next」和「Prev」按鈕,因此我可以根據當前屏幕中的設置來控制它跳到的位置。
- 許多模塊存儲在我的庫中,提供有關需要採取的額外配置步驟的信息。我通過反思和自動UI生成來實現這一點。
- 資產存儲在可執行文件的資源中。
我不想使用通用的安裝程序包(例如InstallShield),因爲邏輯完全是自定義的,並且需要調用我的一個類庫。我想知道的是 - 我是以一種非常迂迴的方式來設定它的嗎?是否有更簡單或更標準的嚮導式應用程序的方式?
InstallShield,WiX,NSIS - 所有這些安裝程序都支持調用自定義庫。他們也能夠處理自定義安裝步驟和任何你可能擁有的瘋狂邏輯。 –