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>

转载于:https://www.cnblogs.com/tonyqus/archive/2005/03/11/116716.html

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

  1. Microsoft Updater Application Block 1.2.1 核心设计(core design) [翻译]

    Microsoft Updater Application Block 核心设计(core design) 译者:Tony Qu Updater Application Block由一个核心应用程序升 ...

  2. Microsoft Updater Application Block 1.4.3 KeyValidator类设计 [翻译]

    Microsoft Updater Application Block KeyValidator类设计 译者:Tony Qu KeyValidator类提供一个基于对称密钥的验证器,该章节将介绍Key ...

  3. Updater Application Block for .NET

    Introduction Do you need to deploy updates to .NET applications across multiple desktops? Would you ...

  4. Updater Application Block v1.0 翻译文档目录

    为方便大家阅读有关Updater Application Block v1.0 的翻译文章,在本文中列出最近翻译的相关文章目录. Updater Application Block v1.0 介绍 U ...

  5. Updater Application Block for .net 2.0 发布了

    Updater Application Block for .net 2.0 终于发布了,做smart client的兄弟来下载吧! 另外 Smart Client Application Block ...

  6. 近期工作:Updater Application Block (UAB)继续

    阅读: 1.Using Updater Block   by Praveen Nayak http://www.codeproject.com/csharp/VanillaUpdaterBlock.a ...

  7. Object Builder Application Block (2)

    三.ObjectBuilder Application Block ObjectBuilder一开始出现于Microsoft所提出的Composite UI Application Block,主司对 ...

  8. 黄聪:Microsoft Enterprise Library 5.0 系列教程(九) Policy Injection Application Block

    代理对象(Proxy Object)会通过Handler链定位到真实对象(Real Object),而Policy则被注入到代理对象和真实对象中.整个流程如图: 我个人对Policy Injectio ...

  9. 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级) 本章介绍的是企业库加密应用程序模块 ...

最新文章

  1. linux shell 代码太长换行 续行
  2. 以脚本方式直接执行修改密码的passwd命令
  3. 【动态规划BFS】相遇
  4. BugkuCTF-MISC题1和0的故事
  5. 热门搜索怎么实现_三个步骤教你学会,搜索引擎霸屏技术!
  6. Atitit 面试问题总结
  7. 网易蜗牛读书与微信读书竞品分析
  8. c语言写测试地下水流速,《C语言》课程教学大纲 总学时:总学时64;理论44;实验20 学分:3.5 .doc...
  9. 80psi等于多少kpa_关于胎压的换算psi、bar,kpa
  10. urp综合教务系统 php 课表,URP综合教务系统教师录入成绩指南
  11. PS3视频媒体播放基本说明
  12. 史蒂夫·乔布斯(简介)
  13. 分布式技术与实战第六课 分布式缓存设计
  14. Android 删除图片后刷新媒体库
  15. Node.js CQRS 幻灯片系统开发实战-曾亮-专题视频课程
  16. 渗透测试工具实战技巧合集
  17. MacOS 磁盘管理工具 diskutil 介绍
  18. jupyter notebook如何导入使用pygal模块
  19. Push rejected by evil dragon bureaucrats
  20. python里怎么输入θ_Python笔记——输入输出

热门文章

  1. React开发(239):dva概念4dispatch
  2. Taro+react开发(19)--arr声明const报错
  3. react学习(67)--git 屏蔽文件不被追踪
  4. 前端学习(3239):react生命周期setstate流程
  5. [vue] 你有自己用vue写过UI组件库吗?
  6. [css] 要是position跟display、overflow、float这些特性相互叠加后会怎么样?
  7. 前端学习(2456):文章列表
  8. “约见”面试官系列之常见面试题之第五十二篇之标准模式和怪异模式(建议收藏)
  9. 前端学习(1899)vue之电商管理系统电商系统之渲染添加用户的表单
  10. shiro学习(21):动态添加验证规则1