Microsoft Updater Application Block 應用程式升級器設定檔設計
譯者:Tony Qu
該檔案包含polling間隔、日誌位置、要使用的下載器和驗證器的資訊,還有在升級過程中所要包含的每一個應用程式的具體資訊。對於每一個應用程式,該檔案包含用戶端設定(如用戶端設定檔的位置)和伺服器端設定(如特定應用程式升級所需要的manifest檔案的位置)。
應用程式升級器設定檔是與控制器應用程式相相關 App程式設定檔,用於初始化升級進程,該檔案常常儲存在與控制器可執行檔相同的目錄中。
ApplicationUpdater集合包含許多提供設定資訊的物件導向的類,這些類是從設定檔中還原序列化得到的,被用在內部應用程式升級器組件。
問題描述
管理員需要能夠指定應用程式升級器的以下設定:
1. 應用程式升級器多長時間檢查一次升級?
2. 在哪裡儲存日誌資料
3. 使用哪種下載器用於拷貝檔案
4. 使用哪種驗證器驗證manifest檔案和其他檔案
5. 需要升級的應用程式資訊,包括用戶端設定檔位置和應用程式的manifest檔案位置
設計目標、權衡和問題
Updater Application Block開發人員識別出了以下一些與應用程式升級器設定檔相關的設計目標、權衡和問題:
1. 設定檔必須允許管理員指定polling間隔、記錄檔位置、下載器和驗證器,以及可升級的應用程式列表
2. 為了最佳化效能,所有的應用程式必須使用相同的下載器和驗證器。
3. 在測試環境中,禁止應用程式的驗證是明智的。useValidation被包含在該檔案的Schema中。
解決方案描述
在應用程式升級器設定檔中有一個<appUpdater>配置節,所有的應用程式升級器設定在該節中配置。
具體實現
下面的例子中示範了一個應用程式升級器設定檔:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="appUpdater" type="Microsoft.ApplicationBlocks.ApplicationUpdater.UpdaterSectionHandler,Microsoft.ApplicationBlocks.ApplicationUpdater" />
</configSections>
<appUpdater>
<UpdaterConfiguration>
<polling type="Seconds" value="120" />
<logListener logPath="C:\AppUpdaterDemo\client\UpdaterLog.txt" />
<downloader type="Microsoft.ApplicationBlocks.ApplicationUpdater.Downloaders.BITSDownloader" assembly="Microsoft.ApplicationBlocks.ApplicationUpdater,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null">
</downloader>
<validator type="Microsoft.ApplicationBlocks.ApplicationUpdater.Validators.RSAValidator" assembly="Microsoft.ApplicationBlocks.ApplicationUpdater,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null">
<key>
<RSAKeyValue>
<Modulus>tHImy41ZOphETPcWQznlNF6/etc.</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
</key>
</validator>
<application name="App1" useValidation="true">
<client>
<baseDir>C:\App1</baseDir>
<xmlFile>C:\App1\AppStart.exe.config</xmlFile>
<tempDir>C:\App1\temp</tempDir>
</client>
<server>
<xmlFile>http://appserver/appupdates/App1/Manifest.xml</xmlFile>
<xmlFileDest>C:\App1\Manifest.xml</xmlFileDest>
<maxWaitXmlFile>60000</maxWaitXmlFile>
</server>
</application>
<application name="App2" useValidation="true">
<client>
<baseDir>C:\App2</baseDir>
<xmlFile>C:\App2\AppStart.exe.config</xmlFile>
<tempDir>C:\App2\temp</tempDir>
</client>
<server>
<xmlFile>http://appserver/appupdates/App2/Manifest.xml</xmlFile>
<xmlFileDest>C:\App2\Manifest.xml</xmlFileDest>
<maxWaitXmlFile>60000</maxWaitXmlFile>
</server>
</application>
</UpdaterConfiguration>
</appUpdater>
</configuration>
更多資訊請參考 配置應用程式升級器