我似乎無法獲得自定義操作。我可能做錯了。以下是我想要做的:Visual Studio 2008安裝程序項目 - 自定義操作未觸發
我想在運行可執行文件的應用程序安裝(Visual Studio Installer項目)中運行自定義操作。可執行文件只是執行一些system.io文件拷貝任務,並且我已經證實,可執行文件本身運行時可以完美運行。
- 我創建安裝項目
- 添加的EXE的程序文件夾
- 去自定義操作,並且增加了exe文件,以提交步驟
- InstallerClass設置爲true
- 冉安裝程序,沒有得到我期待的結果。所以我添加了一行來寫入Windows日誌。在再次運行安裝程序後查看Windows日誌,看起來好像沒有運行。添加了一個debug.break exe代碼Unisntalled /重新安裝我的安裝程序並沒有發生任何事情。我終於坐下來觀看過程,並確認exe永遠不會被執行。
有什麼想法?
有針對性的系統:Windows XP,Vista中 的Visual Studio版本:2008 SP1 語言:VB.NET 有針對性的框架:2.0
優秀。感謝您發佈的代碼,我想我會越來越近。我將它轉換爲VB,我得到這個錯誤:無法找到myexename.savedstate。我假設我應該向你發佈的潛艇傳遞一些東西,但我不知道是什麼。 (順便說一句,這是一個控制檯應用程序),我加入到System.Configuration.Install.dll參考,這裏是我的代碼:
Imports System.ComponentModel Imports System.Configuration.Install _ Public Class ApplicationInstaller Inherits Installer Public Overloads Overrides Sub Commit(ByVal savedState As IDictionary) ' Do some work on commit The_Sub_I_Want_To_Run() End Sub Public Overloads Overrides Sub Install(ByVal stateSaver As IDictionary) ' Do some work on install End Sub Public Overloads Overrides Sub Uninstall(ByVal savedState As IDictionary) ' Do some work on uninstall End Sub End Class
我沒有調用。我從來沒有使用過安裝程序類。我可能在這裏做一些非常新手。根據你的指示,我已經添加了我在安裝期間運行的exe文件中粘貼的代碼。我將該exe文件添加到我的應用程序文件夾中,然後將其添加到提交自定義操作中。現在,這裏是我的代碼現在已經在我的exe文件的來源,我試圖運行:
_
Public Class ApplicationInstaller
Inherits Installer
Public Overloads Overrides Sub Commit(ByVal savedState As IDictionary)
' Do some work on commit
The_Sub_I_Have_my_codein()
MyBase.Commit(savedState)
End Sub
Public Overloads Overrides Sub Install(ByVal stateSaver As IDictionary)
' Do some work on install
End Sub
Public Overloads Overrides Sub Uninstall(ByVal savedState As IDictionary)
' Do some work on uninstall
End Sub
End Class
嗯...在exe文件的項目屬性我點擊「登錄大會「和錯誤已經消失。但是,看起來像exe不運行我想要的代碼。
Visual Studio部署項目很爛並且無疑會導致您的問題。改用WiX。 – erikkallen 2010-03-29 12:05:37