我正在使用Microsoft Visual Studio 2010爲我的簡單.EXE應用程序創建一個簡單的.MSI安裝程序。MSI創建:升級前終止應用程序
問題是,如果您在.EXE仍在運行時安裝升級,則事情會出錯(直到重新啓動)。
我希望.MSI安裝程序在安裝/升級之前終止我的過程。
請問有人能告訴我如何在Orca做到這一點?
編輯:我見過這種情況是由於我的.EXE正在使用,但我也看到它,因爲.CHM幫助文件在升級時也是打開的,所以任何進程終止都不是足以解決這個問題。
我正在使用Microsoft Visual Studio 2010爲我的簡單.EXE應用程序創建一個簡單的.MSI安裝程序。MSI創建:升級前終止應用程序
問題是,如果您在.EXE仍在運行時安裝升級,則事情會出錯(直到重新啓動)。
我希望.MSI安裝程序在安裝/升級之前終止我的過程。
請問有人能告訴我如何在Orca做到這一點?
編輯:我見過這種情況是由於我的.EXE正在使用,但我也看到它,因爲.CHM幫助文件在升級時也是打開的,所以任何進程終止都不是足以解決這個問題。
您可以嘗試創建一個custom action,它停止您的應用程序(由您編寫的自定義EXE或DLL)。例如,您可以將WM_CLOSE發送到主應用程序窗口(您的應用程序應處理此消息)。
此自定義操作應該安排在InstallExecuteSequence表中的InstallValidate操作之前。
您應該將MsiRMFilesInUse Dialog廣告給您的安裝人員。
這會檢測我的幫助文件是否打開? – servermanfail 2011-02-28 08:01:15
如文檔中所述:「可以創建MsiRMFilesInUse對話框,以顯示當前正在運行的文件需要被安裝覆蓋或刪除的進程列表。」您可以依賴RestartManager發佈的事件來安全關閉您的應用。但是,此對話框可以用於Windows Installer 4.0或更高版本。對於較低版本,您可以使用FilesInUse對話框。 – Ciprian 2011-02-28 11:03:04
我已到處尋找,但我無法找到一些關於如何將內置對話框添加到設置的幫助。你能幫我嗎 ?我在說VS安裝程序 – 2016-05-24 09:40:23
您可以編寫一個自定義操作來關閉您的應用程序以及您的幫助文件。
你應該能夠找到的窗口句柄的這兩種使用FindWindow函數: http://msdn.microsoft.com/en-us/library/ms633499(v=vs.85).aspx
爲可執行文件,你應該能夠使用適當的窗口類或爲標題FindWindow函數。 對於幫助文件,您應該能夠爲FindWindow使用適當的幫助窗口標題。
我希望這有助於!
謝謝,根據我的編輯,這個答案是不夠的。但是,它直接回答了我原來的問題,這裏有一個+1。下一次,我會專注於我的問題,而不是關於我的想法。 – servermanfail 2011-02-28 08:00:29