2012-08-10 229 views
0

我有一個MSI安裝程序,它具有我的自定義安裝程序項目輸出,並且我添加了一個exe文件以在安裝時運行。MSI安裝程序安裝和卸載問題

因此,我的MSI安裝文件將從源位置複製或刪除文件,我的自定義GUI將安裝我的窗口服務器調用某些服務器API並更新其登錄憑據等東西。

複製和刪除文件由MSI控制,作爲MSI項目的輸出添加。如果我正在安裝它的意願複製文件,或者如果我卸載它將刪除文件。

現在我有以下問題 -

1)現在,如果我會從GUI去控制面板,並嘗試卸載我的應用程序,以後如果我放棄了,我的GUI將中止,但MSI將清除所有文件。

2)如果我將選擇卸載,並從GUI進一步選擇修復。它仍然會刪除文件。

所以我的安裝程序不是真正的自定義安裝程序,它的同名安裝程序。

現在我該如何快速修復以上兩個選項? 並有沒有更好的方法來完成這項任務 - >我原來的問題create single click msi file of custom installer of an application

在此先感謝

回答

1

這聽起來像你正試圖在錯誤的時間做的事情。在任何安裝系統中,您應該先收集所有用戶輸入,然後一旦安裝本身啓動,應該不再需要用戶輸入,直到完成所有工作。

確保完整性的最簡單方法是僅讓用戶在UI收集階段取消,而不是在安裝階段。如果您確實希望在安裝階段讓用戶取消,那麼您必須將其傳遞給底層引擎,以便知道取消並回滾迄今爲止所做的任何更改。

+0

感謝您的建議,但它對我沒有任何幫助。 – sunder 2012-08-31 12:00:25

+0

這是我希望有我的安裝過程 - 1)歡迎屏幕 2)系統檢查 3)EULA 4)服務器設置爲每個產品的許可,它通過用戶的無線電選擇。 5)基於上次選擇的服務器設置。 6)我的窗口服務器設置,這將使一個休息電話和更新服務器。 7)接受域用戶帳戶憑證。 8)現在開始安裝。 9)根據選擇重定向到雲門戶並添加完成消息。 請讓我知道這是可能的。 – sunder 2012-08-31 12:14:38

0

在我看來,你需要爲你的行爲設置適當的條件,比如啓動你的exe文件執行。嘗試設置類似「未安裝」的內容,以便僅在初始安裝期間發生,但不會在刪除/修復或升級過程中發生。