簡體   English   中英

Windows上的C#在程序仍在運行時更新程序

[英]c# on windows updating a program while it's still running

我在自助服務終端上有一個程序,具有相關服務,該服務通過定期在Web上檢查MSI的較新版本來更新程序。 如果找到一個,它將安裝它,程序可能仍在運行。

為了解決上述解決方案的DLL沖突,我按版本將MSI中的程序集重命名,以便在舊版本運行時可以安裝新版本。 該應用程序將輪詢安裝目錄以獲取較新版本的程序集,如果在不使用它的情況下立即發現重新啟動,則該應用程序將對其進行輪詢。 有沒有更好的方法可以做到這一點?

請問ClickOnce會不是一個更好的選擇?

http://msdn.microsoft.com/en-us/library/t71a733d.aspx

我以前做過這個故事。 它是這樣的:

UI以登錄的用戶身份運行。

該服務作為系統運行。 該服務檢查內容並將其下載到臨時目錄。 然后,它使用/ JM命令播發MSI。 現在,非特權用戶可以安裝該安裝程序。

該服務會向應用程序發送一條IPC消息,提示該安裝了。 該應用程序啟動安裝程序,並向其傳遞一個標志,指示重新啟動該應用程序。 該應用程序退出以釋放鎖定的文件。

在安裝程序的末尾,該標志使安裝程序重新啟動該應用程序。

還可以看看wuw4庫 它有助於創建很多這種解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM