2014-10-06 61 views
0

我們目前正在研究修改我們的應用程序的更新過程,但有很多可能的方法可以做到這一點,但我會先介紹一些背景知識。我們目前正在運行一個MVVM WPF/Silverlight應用程序,它有一個本地和聯機運行的SQL Server 2008 R2數據庫。我們目前有一個更新過程,它可以在線檢查更新,然後啓動更新程序以在運行MSI或MSP修補程序文件以提供更新之前提升權限。自動更新建議

不幸的是,由於我們大多數客戶的設置,我們發現大多數用戶都會因訪問權限而苦惱,因爲他們的本地管理員並不總是可用。這導致我們尋找替代方法。

我們理想的情況是在系統用戶帳戶下以後臺運行一個進程,這會定期檢查服務器是否有更新。當更新被認爲可用時,應當通知當前用戶有更新可用並詢問他們是否希望下載它(還有關於用戶在準備就緒時單擊以運行更新的靜默下載的討論)。然後該進程可以運行UI以顯示正在進行的下載,如果這顯示在工具欄的通知區域中,它將再次是理想的。在這個過程結束時,它應該在提升的權限下運行MSI文件,以允許用戶在沒有管理員權限的情況下更新軟件。

該軟件的初始安裝將由管理員執行,該管理員將意識到此完全自動更新過程。

所以我的問題是:

什麼是最好的實踐方法進行這種類型的過程? 您對編碼有什麼建議,例如我們是否有應用程序或將任務或服務關閉? 是否有專門爲解決此問題而設計的軟件? 是否有一個特定的Windows帳戶是爲諸如目的而設計的? 任何示例和不同做法的優缺點。

我意識到這是一個非常模糊的問題,但我寧願遵循推薦的方法,而不是重新發明輪子。

謝謝。

+0

+ 1/-1:我意識到這是一個非常模糊的問題,但我寧願跟隨推薦的方法,而不是重新發明輪子:)。 – Noctis 2014-10-06 13:39:27

回答

0

我可能在這裏偏離軌道,但爲什麼不讓你的應用程序成爲Click Once應用程序。這樣,每次啓動應用程序時,都可以檢查是否有新版本,並提示最終用戶安裝更新版本。

如果確實發生了新版本的問題,那麼最終用戶將能夠回滾到以前的版本。

我們已經將這種方法用於多個WPF應用程序,效果很好。

我們傾向於發佈到開發機器上的文件夾,然後ftp到公共服務器。

use the publish wizard from the properties-publish

Select a local file location

Specify how users will install the application

Enter the public URL for updates

Ready to publish