Microsoft Updater Application Block server-side manifest file Design
Translator: Tony Qu
The Manfest file is used to list all the files required for an upgrade. It is associated with the verification signature. The verification signature can be used to verify the authenticity of the manifest file. This section describes the following aspects of the application Installer:
Problem description
Design goals, trade-offs, and problems
Solution description
Implementation
Problem description
For each update, the application installer must be:
1. Identify available versions and decide whether to upgrade
2. Locate the upgrade File
3. verify the authenticity of the update information and files.
4. If a Post Processor is specified, locate the Post Processor [Post Processor].
Design goals, trade-offs, and problems
The Updater Application Block developer identifies the following design objectives, trade-offs, and problems related to the manifest file:
1. The file must be in xml format.
2. The file should contain the verification signature for each upgrade File
3. The file should contain a manifest signature.
4. The file should allow the Administrator to specify the post-processor to run after the upgrade is complete
Solution description
The manifest file mode contains the following elements:
1. availableVersion-application version available for download
2. updateLocation-Network Location of the update File
3. files -- each update file has a <file> element.
4. postProcessor -- this is an optional element that specifies the type, set, and post-processor file location after the upgrade is complete.
In addition, the <ServerApplicationInfo> root element and each <file> element have a signature attribute, which is used to specify a signature for verification.
Implementation
<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 = "19 huio % g"/>
</Files>
<PostProcessor type = "MyPostProcessor. MyAppProcessor" assembly = "MyPostProcessor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null" name = "post \ MyPostProcessor. dll"/>
</ServerApplicationInfo>