2012-08-28 95 views
0

在我的應用程序中,我有一個Windows窗體應用程序和兩個Windows服務。目前我正在使用.net安裝項目來安裝應用程序和Windows服務。我添加了自定義操作,可以打開窗體並接受SQL服務器詳細信息以爲應用程序創建SQL數據庫。
我在提高InstallException如果用戶關閉或單擊窗體上的取消按鈕以取消設置嚮導。
我面臨的問題是在使用InstallException取消設置嚮導之後,它給出錯誤「Error 1001. Could not find file'C:\ Program Files(x86)\ MyApp \ MyService1.InstallState'。」爲我的兩個窗口服務一個接一個。
對於臨時解決方案,我將InstallState文件和手動添加到我的安裝項目中,該項目將InstallState文件添加到安裝目錄。
它工作了幾個月。但在應用程序發生一些變化後,它開始給我一些其他錯誤「Error 1001.找不到元素的對象類型ArrayOfKeyValueOfanyTypeanyType System.Collections.Hashtable」
我發現它需要再次添加新的InstallState文件進行更改。

我認爲這不是手動添加InstallState文件的正確方法。 有沒有人可以在我的設置項目中實施其他想法來解決這個問題?.net 2.0安裝項目自定義操作和InstallState文件

如果用戶在安裝時取消安裝嚮導,並且用戶取消卸載嚮導,則不需要刪除數據庫,我需要回滾SQL數據庫更改(創建數據庫)。

在此先感謝。

+0

請添加您的解決方案作爲答案,並將其標記爲已接受。 –

回答

0

我解決了我自己的問題。自定義操作順序爲:

1)自定義操作DLL
2)Windows服務1
3)Windows服務2

我改變序列
1)Windows服務1
2)Windows服務2
3)自定義操作DLL

我認爲這是試圖回滾窗口服務狀態和窗口服務沒有安裝在第一種情況下

相關問題