AppUpdater組件自動更新

來源:互聯網
上載者:User
 AppUpdater組件是可以更新的,主要的問題在於,要把服務端的虛擬目錄配置,存取權限設定 "瀏覽目錄".

Smart Client開發: 使用AppUpdater組件
本來今天打算介紹Updater Application Block的,後來想想一些朋友經常反饋說用將UAB整合到自己開發的應用程式中太麻煩了,詢問有沒有更簡單的方法布署智能用戶端。在Whidbey的ClickOnce出來之前,答案當然還是有的,那就是使用AppUpdater組件。在美國舉行的TechED 2004上介紹的IssueVision,TaskVision這些經典的Smart Client Demo用的都是這個組件來實現智能用戶端的布署。

使用AppUpdater組件要用到下面這些檔案:大家可以在http://windowsforms.net/downloads/GDN/dotnetupdater.zip 中下載
檔案名稱 功能描述
AppStart.exe 類似中介代理的程式,由它來啟動真正的應用程式。不直接啟動主應用程式是為了防止主應用程式升級的過程中被鎖死而造成升級失敗。
AppStart.config AppStart.exe的設定檔,它指定要啟動的應用程式所在目錄,以及要啟動應用程式的名稱
appupdater.dll 最重要的組件,自動升級的主要組件
system.Resources.dll 資源檔
mscorlib.Resources.dll 核心資源檔
UpdateVersion.xml 伺服器端版本升級設定檔

OK,開始介紹如何使用它吧。

(1) .在Custom Control中匯入AppUpdater
(2).配置自動下載選項

AutoFileLoad :True
ChangeDetectionMode ServerManifestCheck
UpdateUrl http://YourServerDomainName/SmartServer/UpdateVersion.xml
ShowDefaultUI: True

AutoFileLoad 可以讓 伺服器上的檔案動態載入,大家可以把它想像成 Un-Touch 部署中的Assembly.LoadFrom類似的功能
ChangeDetectonMode是設定檢測模式:根據設定檔進行檢測,也就是UpdateUrl屬性指定的檔案。如果設成DirectFileCheck則是比較每一個檔案的時間戳記來決定要不要下載這個檔案。
UpdaterUrl指伺服器上的更新設定檔,其中UpdateVersion.xml內容如下:
<VersionConfig>
<AvailableVersion>2.0.0.0</AvailableVersion>
<ApplicationUrl>http://YourServerDomainName/SmartServer/Ver/</ApplicationUrl>
</VersionConfig>

UpdateVersion.xml解釋:
<AvailableVersion>2.0.0.0</AvailableVersion>
告訴用戶端目前可用的版本,用戶端appupdater組件會比較本地主應用程式版本號碼和該項配置的版本號碼,如果比本地的版本號碼更高,則進行下載更新。

<ApplicationUrl>http://YourServerDomainName/SmartServer/Ver/</ApplicationUrl>
告訴用戶端到哪個網址進行下載更新

建議大家把這個屬性設定成Dynamic,即從設定檔中讀出來,不過,要讓伺服器的.config檔案允許被下載,我們還要在IIS中 ASP.net應用程式”配置“中對它進行設定,預設是不允許訪問的。

ShowDefaultUI表示下載結束時用一個簡單的介面提示你要不要啟動新版本。你還可以用自己的表單顯示,方法是設成False,並在OnUpdateComplete事件中寫代碼把你的表單顯示出來。

當然,還有一些其他的屬性,比如,是否要使用公開金鑰(可以是一個,也可以提供一個Assembly,裡麵包括多個公開金鑰)驗證要下載的檔案。由於時間關係,我就不多說了。

(3) 使用AppStart.exe啟動實際的應用程式。
(4) 在IIS把下載檔案夾設成允許瀏覽目錄,因為AppUpdater要枚舉裡面的所有檔案,並把它們都下載到本地。如果是Windwos 2003,麻煩一點,要允許WebDAV,並把.config檔案設定成允許下載。
(5) 做個msi安裝檔案,打包應用程式,這樣,當應用程式運行時,它就能自動判斷有無最新版本,並下載到本地運行。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.