2009-07-22 152 views

回答

6

通常,應用程序會在啓動時注意到有更新可用,然後詢問用戶是否可以更新。然後他們開始更新過程並退出。更新過程替換文件,然後啓動新版本。

一些案件您可以用更新一些件應用程序的不重啓就完事了 - 但增加的複雜性是顯著,坦率地說,最好不要在的情況下99%的試試看,IMO 。

當然,你還沒有說過你在寫什麼樣的應用程序 - 如果你可以提供更多的信息,這將有所幫助。

3

應用程序在更新之前需要關閉,因爲更新應用程序通常意味着用它們的新版本替換可執行文件(.exe,.dlls等),並且這不能在沒有關閉應用程序的情況下完成。

作爲Jon said,在一些的情況下,您可以升級應用程序而不關閉它。但是,這不可取,因爲它可能會導致更新程序失敗,並且整個更新可能會回滾。

更新程序可以是另一個的可執行文件,將首先關閉主應用程序,然後下載更新,應用它們,啓動主應用程序,並退出(這方面的一個例子是SkypeFireFox等)

0

你可以將後端分離爲單獨的進程/模塊,並通過重新啓動後端來更新後端,而無需用戶意識到它。

更新前端會有點棘手,但如有必要可以避免或延遲。

0

一個很好而乾淨的方法來實現這一點將使用動態插件。 你可以編寫基於插件的應用程序。當需要更新時,卸載需要更新的插件,更新.dll文件並將其加載迴應用程序。然而,讓用戶看不到這可能是一項艱鉅的工作,因此它在很大程度上取決於您的設計和編碼。

0

我記得InTime有能力交換exe的生活,但是必須仔細編碼。我知道這是可能的,但正如Jon Skeet所說,你最好不要嘗試。

除非您正在進行某種自動化或非常嚴重的事情......即使如此,您應該考慮進行故障轉移,以便在需要時關閉/重新啓動。

0

如果你有某種骨架框架啓動你的應用程序和dll,你可以看看CreateDomain。儘管如此,它仍然需要認真的設計。祝你好運!

相關問題