2010-02-24 172 views
1

我有一個作爲服務運行的應用程序,我希望能夠檢查URL以查看是否有新版本可用,如果可以,請下載並安裝它。我可以一起手動破解一些東西,但如果我可以創建一個MSI包來更新服務以及作爲我的發行版的一部分的任何其他組件,那就太棒了。我也喜歡它沒有任何用戶界面,所以用戶不知道更新。點擊一次服務?

有沒有什麼好的解決方案呢?

回答

2

這可能會很棘手,具體取決於您的更新可能要執行的操作。

如果您打算刪除並重新安裝該服務,則可能需要重新引導,這對用戶來說肯定是可見的。

爲了替換服務的組件,服務必須先停下來。如果您的服務本身正在檢測更新可用性,則可能必須啓動另一個進程來停止服務,運行安裝程序/更新程序然後重新啓動服務。

+0

是的,我知道我可以寫一個程序來做更新,可能與第二個服務。我希望有一種更正式的方式來做到這一點,比如通過在安裝包中構建一些東西。 – 2010-02-24 18:58:05

2

嘗試installer.codeeffects.com。它有這個功能。

+1

對不起,我只是檢查,發現我只是部分正確:)他們有類似的東西,但你的用戶仍然需要手動重新安裝。 – Regina 2010-02-24 23:35:40

1

你可以嘗試MEF(http://www.codeplex.com/MEF),並使用

[Import("http://someUrl/someComponent")] 
public ISomeComponent SomeService; 

它並不是真正的自動更新,但服務可以始終保持最新狀態。我不知道它是否工作..它只是一個想法:-)