Microsoft Updater Application Block 1.5.3 服务器端manifest文件设计 [翻译]

Microsoft Updater Application Block 服务器端manifest文件设计

译者: Tony Qu

Manfest文件用于列出一次升级所需要的所有的文件,它与验证签名相关联,验证签名可用于验证manifest文件的真实性。这个将介绍应用程序升级器的以下几个方面:
问题描述
设计目标、权衡和问题
解决方案描述
具体实现


问题描述
对于每次升级,应用程序升级器必须能够:
1. 识别可用版本,决定是否要升级
2. 定位升级文件
3. 验证升级信息和文件的真实性
4. 如果指定了一个后处理器,要定位后处理器[Post Processor]

设计目标、权衡和问题
Updater Application Block的开发人员识别出以下一些与manifest文件相关的设计目标、权衡和问题
1. 文件必须是xml格式
2. 文件应该为每一个升级文件包含验证签名
3. 文件应该包含一个manifest自己的签名
4. 文件应该允许管理员指定在升级完成后运行的后处理器

解决方案描述
manifest文件模式包含以下一些元素:
1. availableVersion —— 可供下载的应用程序版本
2. updateLocation —— 升级文件的网络位置
3. files —— 每一个升级文件都有一个<file>元素
4. postProcessor —— 这是一个可选的元素,指定类型、集合、在升级完成后运行的后处理器的文件位置。
另外,<ServerApplicationInfo>根元素和每一个<file>元素都有一个signature属性,该属性用于指定一个验证签名

具体实现
< ServerApplicationInfo  signature ="16d~#d9&9" >

  
< availableVersion > 2.0.0.0 </ availableVersion >
< updateLocation > http://appserver/appupdates/2.0.0.0 </ updateLocation >
  
< files >
    
< file  name ="post\Microsoft.ApplicationBlocks.ApplicationUpdater.Interfaces.dll"   signature ="25kdsj*7"   />
    
< file  name ="post\MyPostProcessor.dll"  signature ="25sd][{*h"   />
    
< file  name ="data\App1Data.mdb"  signature ="6ydh8i]+8#"
    <file name
="App1.exe"  signature ="25+)8j&h"   />
    
< file  name ="App1.exe.config"  signature ="19huio%g"   />
  
</ files >
  
< postProcessor  type ="MyPostProcessor.MyAppProcessor"  assembly ="MyPostProcessor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"  name ="post\MyPostProcessor.dll"   />
</ ServerApplicationInfo >

你可能感兴趣的:(application)