Updater2.0 配置文件的生成
1.创建Manifest文件
manifest文件包含了 Updater Application Block配置功能,作为配置更新进程
1.1.应用程序manifest的归属
1.2.需要下载的文件
1.3.实现下载的方式
1.4.后台下载的激活
1.5.所包含的其他manifests
你可以使用manifest编辑器产生一个manifest文件
2. 使用manifest编辑器创建manifest文件
2.1.运行manifest编辑器
2.1.1.在任务栏中,点击开始à 程序 à Microsoft patterns & practices à
Updater Application Block v2 à Enterprise Library Configuration Tool
注意:第一次启动此编辑工具,需要一段时间进行初始化
2.2. 点击Manifest Properties页签,如图所示
2.1.1.点击Generate为manifest自动地产生一个GUID
2.1.2.使用Included Manifests区域,在这个manifest中包含了扩展的manifests,当应用程序去服务断检测更新时,如果这个主manifest包含了子manifests,则应用程序将为每一个子manifest创建进程
2.3. 点击downloader页签,在DownLoader Name 输入下载名称
2.4.点击Application Properties 页签,输入应用程序的相关信息
名称
|
说明
|
Application Id
|
应用程序唯一的标识符
|
Location
|
更新文件复制到客户端计算机路径.这些可以通过执行组件进行校验或更改
|
File
|
应用程序的入口点文件.
|
Parameters
|
应用程序入口点参数
|
Base Path
|
更新文件服务端路径
|
Use hashing
|
定义是否使用局部文件的hash比较,选中此单选框,你可以指定使用加密配置文件,然后可以在下拉选框中选择Hash提供者
|
Source Folder
|
包含更新文件的文件夹
|
Files
|
更新文件列表.当使用ApplicationDeployProcessor进程时,包含选择框的文件将在manifest中被标记并不被部署
|
注意:在默认的情况下,IIS6.0禁止所有未知的CGI扩展,须确保所需从服务器下载的exe和dll文件,同时你必须增加msp扩展作注MIME类型列表 确保这些文件不会在服务端过滤.
2.5.点击Activation Process页签,然后增加所需的运行所有激活进程,如图所示.当增加了一个可配置的进程,则会弹出一个自定义的配置对话框,你可以使用指定的可配置参数. 例如,当增加一个MSIProcessor进程,你可以指定其 Install type, UI Level, Product code, Property values, 和 Property path属性,你也可以通过选择适当的进程很点击Configure打开其对话框
2.6.点击Validate验证你输入的信息是否有效
2.7.点击View预览将要产生Manifest的信息
2.8.点击Save,保存Manifest文件
3.配置文件输出实例
<manifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" manifestId="(ec7f1573-67f2-452d-9e44-27d32b06638a)" mandatory="Yes" xmlns="urn:schemas-microsoft-com:PAG:updater-application-block:v2:manifest">
<description>Manifest for MyApp</description>
<application applicationId="(54a97e8d-2430-4a99-8f3c-7284f916d685)">
<entryPoint file="MyApp.exe" parameters="" />
<location>.\..\..</location>
</application>
<files base="http://server1/MyApp/Updates" hashComparison="No">
<file source="Update.txt" transient="No" />
</files>
<downloader name="BITSDownloader"/>
<activation>
<tasks>
<task name="ApplicationDeployProcessor" type="Microsoft.ApplicationBlocks.Updater.ActivationProcessors.ApplicationDeployProcessor, Microsoft.ApplicationBlocks.Updater.ActivationProcessors"/>
</tasks>
</activation>
<includedManifests>
<manifest location="Manifest2.xml" manifestId="(1cb35e4c-33ed-428c-9e50-6d2897f1f262)"/>
</includedManifests>
</manifest>
4.manifest 的安全
manifest是通过HTTP从服务器下载的,这个不是一个安全的下载技术.当客户端计算机请求更新,会影响到manifest文件传输的潜在威胁和不正确的更新
以下为可以防止这些威胁两个解决方案
4.1. 使用HTTPS防止传输的影响
4.2. 修改ManifestManager类,提供数字签名manifests