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属性,该属性用于指定一个验证签名

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第八十六期:“程序员锁死服务器导致公司倒闭”案正式开庭审理

11 月 1 日&#xff0c;据微博网友爆料&#xff0c;此前程序员锁死服务器致创业游戏公司倒闭一案已经开庭审理&#xff0c;公司创始人“螃了个蟹” 提交了对方莫名失联&#xff0c;跑路的证据。 作者&#xff1a;51CTO 11 月 1 日&#xff0c;据微博网友爆料&#xff0c;此前…

spring mvc学习(9):路径参数

目录结构 web.xml <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xmlns"http://java.sun.com/xml/ns/javaee" xsi:schemaLocation"http://java.sun.com/xml…

扩展String类

因为.Net Framework中的String类是封闭的&#xff0c;所以我们不能从它进行派生来扩展它的功能。 虽然String类已经提供了很多有用的方法来让我们进行字符串的处理和操作&#xff0c;但是有时候一些特殊的的要求还是不能能到满足。 一个例子就是&#xff1a;假如有一个因为句…

第八十七期:爬了知乎“沙雕问题”,笑死个人!

这两天偶然上网的时候&#xff0c;被知乎上一个名为“玉皇大帝住在平流层还是对流层”的问题吸引。 作者&#xff1a;数据森麟 这两天偶然上网的时候&#xff0c;被知乎上一个名为“玉皇大帝住在平流层还是对流层”的问题吸引。 图片来自 Pexels 本以为只是小打小闹&#xf…

django的url控制系统

无命名分组 &#xff08;\d{4}&#xff09; 有命名分组 &#xff08;&#xff1f;P<name>\d{4}&#xff09; 一个视图做两件事&#xff0c;提交方法不一样&#xff08;if 判断&#xff09; form action"/register/" django默认添加了当前面IP和端口 url别名…

第八十八期:4000万程序员最爱开源项目和编程语言排名出炉!

今天&#xff0c;全球最大开发者社区GitHub重磅发布2019年度报告&#xff0c;透露了一个数据&#xff1a;GitHub目前在全球已有超过4000万开发者用户&#xff0c;其中80%来自美国之外的地区。 作者&#xff1a;小芹、亮亮 全球最大开发者社区GitHub今天重磅发布2019年度报告&…

Java2实用教程(第二版)程序代码——第十四章 Component类的常用方法

1//例子12import java.applet.*;import java.awt.*;3import java.awt.event.*;4import javax.swing.JTextArea;5publicclassExample14_1 extends Applet implements ItemListener6{ List list ; 7 JTextArea text; 8 public void init() 9 { listnew List(6,false…

第八十九期:还在手动盖楼领喵币?双十一这群开发者竟然如此「作弊」

开发者构建了一个脚本以自动逛双十一会场&#xff0c;让使用者轻松完成各种领币任务&#xff0c;同时还能解放双手。 作者&#xff1a;Synced 每年的 11 月份&#xff0c;总觉得有些硝烟弥漫。好在淘宝双十一领喵币&#xff0c;也已经有了自动化脚本。 感觉还未从去年双十一…

Serverless简介

说起当前最火的技术&#xff0c;除了最新的区块链&#xff0c;AI&#xff0c;还有一个不得不提的概念是Serverless。Serverless作为一种新型的互联网架构直接或间接推动了云计算的发展&#xff0c;从AWS Lambda到阿里云函数计算&#xff0c;Serverless一路高歌&#xff0c;同时…

第九十期:哪种人是软件设计中的稀缺型人才?

好的系统架构离不开好的接口设计&#xff0c;因此&#xff0c;真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。 作者&#xff1a;从码农到工匠 好的系统架构离不开好的接口设计&#xff0c;因此&#xff0c;真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。 为什…

第九十一期:架构设计常用到的10种设计模式,你都知道吗?

企业规模的软件系统该如何设计呢&#xff1f;在开始写代码之前&#xff0c;我们需要选择一个合适的架构&#xff0c;这个架构将决定软件实施过程中的功能属性和质量属性。因此&#xff0c;了解软件设计中的不同架构模式对我们的软件设计会有较大的帮助。 作者&#xff1a;abel_…

8. String to Integer (atoi)

1题目理解 输入&#xff1a;一个字符串s&#xff0c;可能包含空格、正负号、数字&#xff0c;还有其他字符。 输出&#xff1a;将字符串转为int 规则&#xff1a;字符串s一开始可能有很多空格&#xff0c;可以忽略这些空格&#xff0c;直到遇到第一个非空字符。从这个字符开始…

程序编码应保持良好的规范(C#)

呵呵&#xff0c;这个简直是超级老生常谈了。但我还是希望能让更多的程序员能了解一些细节习惯对于程序阅读性的影响。而这个很大程度决定了程序的可移植性。1。变量赋值之间注意保留空格。有些程序员往往不注意。不好的&#xff1a; Body.txtVersion.Textib.Version.ToString(…

第九十二期:多少程序员注意到了「中台」的背面?

中台这个词&#xff0c;最近两年特别火&#xff0c;它的爆发源于2015年张勇在阿里发出的内部信中提到的“大中台&#xff0c;小前台”战略。随后吸引了很多人开始“追逐”它。也有很多人开始借着这概念来挣钱。 作者&#xff1a;跨界架构师 这篇文章比较长&#xff0c;有5200…

框架学习 Spring之依赖注入DI

依赖注入的方式有四种&#xff1a; 1、Setter注入&#xff08;属性注入&#xff09; 2、构造器注入 3、P命名空间注入 4、集合类型值注入 1、Setter注入&#xff08;属性注入&#xff09; Employee 员工实体类 package com.spring.pojo;public class Employee {private Integer…

图:两点之间的最短距离

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 1 问题阐述 像 Google 地图、百度地图、高德地图这样的地图软件&#xff0c;如果想从家开车到公司&#xff0c;你只需要输入起始、结束地址&#xff0c;地图就会给你…

spring mvc学习(10):eclipse的环境前maven配置

一.maven的安装 1解压maven压缩包到某一路径下 2配置MAVEN_HOME 3配置path到MAVEN_HOME/bin下 二eclipse集成MAVEN 方法1:直接使用自带插件 1在用户目录/.m2文件夹下面创建setting.xml文件&#xff0c;配置maven仓库位置 2在eclipse中直接配置maven的文件路径 方法2&…

for in / for of 要会用

for in是ES5标准&#xff0c;遍历index ---索引 or key --- 键. 1 for (var index in arr){} // index 0 1 2 3...arr.length-1 1 for (var key in obj){} // key obj里边enumerable的属性&#xff08;可枚举的属性&#xff09; for of是ES6标准&#xff0c;遍历value---每…

162. Find Peak Element

文章目录1 题目理解2 线性扫描3 递归二分查找1 题目理解 输入&#xff1a;int[] nums并且 nums[i]!nums[i1] 输出&#xff1a;找到称为峰值的那个数字&#xff0c;返回其下标。 规则&#xff1a;峰值是指&#xff1a;nums[i-1]<nums[i] 并且 nums[i1]<nums[i]。你可以认…

spring mvc学习(11):eclipse的环境maven项目创建前期工作

1创建maven项目 2pom.xml有红色错误&#xff0c;生成web目录 3修改pom.xml配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…