diff options
Diffstat (limited to 'src/api/burn/WixToolset.Mba.Core/PackageInfo.cs')
-rw-r--r-- | src/api/burn/WixToolset.Mba.Core/PackageInfo.cs | 69 |
1 files changed, 38 insertions, 31 deletions
diff --git a/src/api/burn/WixToolset.Mba.Core/PackageInfo.cs b/src/api/burn/WixToolset.Mba.Core/PackageInfo.cs index 3fa1b49e..c6373647 100644 --- a/src/api/burn/WixToolset.Mba.Core/PackageInfo.cs +++ b/src/api/burn/WixToolset.Mba.Core/PackageInfo.cs | |||
@@ -8,57 +8,57 @@ namespace WixToolset.Mba.Core | |||
8 | using System.Xml.XPath; | 8 | using System.Xml.XPath; |
9 | 9 | ||
10 | /// <summary> | 10 | /// <summary> |
11 | /// | 11 | /// The type of package. |
12 | /// </summary> | 12 | /// </summary> |
13 | public enum PackageType | 13 | public enum PackageType |
14 | { | 14 | { |
15 | /// <summary> | 15 | /// <summary> |
16 | /// | 16 | /// Invalid type. |
17 | /// </summary> | 17 | /// </summary> |
18 | Unknown, | 18 | Unknown, |
19 | 19 | ||
20 | /// <summary> | 20 | /// <summary> |
21 | /// | 21 | /// ExePackage |
22 | /// </summary> | 22 | /// </summary> |
23 | Exe, | 23 | Exe, |
24 | 24 | ||
25 | /// <summary> | 25 | /// <summary> |
26 | /// | 26 | /// MsiPackage |
27 | /// </summary> | 27 | /// </summary> |
28 | Msi, | 28 | Msi, |
29 | 29 | ||
30 | /// <summary> | 30 | /// <summary> |
31 | /// | 31 | /// MspPackage |
32 | /// </summary> | 32 | /// </summary> |
33 | Msp, | 33 | Msp, |
34 | 34 | ||
35 | /// <summary> | 35 | /// <summary> |
36 | /// | 36 | /// MsuPackage |
37 | /// </summary> | 37 | /// </summary> |
38 | Msu, | 38 | Msu, |
39 | 39 | ||
40 | /// <summary> | 40 | /// <summary> |
41 | /// | 41 | /// Related bundle of type Upgrade |
42 | /// </summary> | 42 | /// </summary> |
43 | UpgradeBundle, | 43 | UpgradeBundle, |
44 | 44 | ||
45 | /// <summary> | 45 | /// <summary> |
46 | /// | 46 | /// Related bundle of type Addon |
47 | /// </summary> | 47 | /// </summary> |
48 | AddonBundle, | 48 | AddonBundle, |
49 | 49 | ||
50 | /// <summary> | 50 | /// <summary> |
51 | /// | 51 | /// Related bundle of type Patch |
52 | /// </summary> | 52 | /// </summary> |
53 | PatchBundle, | 53 | PatchBundle, |
54 | 54 | ||
55 | /// <summary> | 55 | /// <summary> |
56 | /// | 56 | /// Related bundle of type Update |
57 | /// </summary> | 57 | /// </summary> |
58 | UpdateBundle, | 58 | UpdateBundle, |
59 | 59 | ||
60 | /// <summary> | 60 | /// <summary> |
61 | /// | 61 | /// BundlePackage |
62 | /// </summary> | 62 | /// </summary> |
63 | ChainBundle, | 63 | ChainBundle, |
64 | } | 64 | } |
@@ -156,10 +156,10 @@ namespace WixToolset.Mba.Core | |||
156 | internal PackageInfo() { } | 156 | internal PackageInfo() { } |
157 | 157 | ||
158 | /// <summary> | 158 | /// <summary> |
159 | /// | 159 | /// Parse packages from BootstrapperApplicationData.xml. |
160 | /// </summary> | 160 | /// </summary> |
161 | /// <param name="root"></param> | 161 | /// <param name="root">The root node.</param> |
162 | /// <returns></returns> | 162 | /// <returns>A dictionary of the packages by Id.</returns> |
163 | public static IDictionary<string, IPackageInfo> ParsePackagesFromXml(XPathNavigator root) | 163 | public static IDictionary<string, IPackageInfo> ParsePackagesFromXml(XPathNavigator root) |
164 | { | 164 | { |
165 | var packagesById = new Dictionary<string, IPackageInfo>(); | 165 | var packagesById = new Dictionary<string, IPackageInfo>(); |
@@ -213,6 +213,13 @@ namespace WixToolset.Mba.Core | |||
213 | 213 | ||
214 | package.RepairCondition = BootstrapperApplicationData.GetAttribute(node, "RepairCondition"); | 214 | package.RepairCondition = BootstrapperApplicationData.GetAttribute(node, "RepairCondition"); |
215 | 215 | ||
216 | BOOTSTRAPPER_CACHE_TYPE? cacheType = GetCacheTypeAttribute(node, "Cache"); | ||
217 | if (!cacheType.HasValue) | ||
218 | { | ||
219 | throw new Exception("Failed to get cache type for package."); | ||
220 | } | ||
221 | package.CacheType = cacheType.Value; | ||
222 | |||
216 | packagesById.Add(package.Id, package); | 223 | packagesById.Add(package.Id, package); |
217 | } | 224 | } |
218 | 225 | ||
@@ -221,11 +228,11 @@ namespace WixToolset.Mba.Core | |||
221 | } | 228 | } |
222 | 229 | ||
223 | /// <summary> | 230 | /// <summary> |
224 | /// | 231 | /// Parse the cache type attribute. |
225 | /// </summary> | 232 | /// </summary> |
226 | /// <param name="node"></param> | 233 | /// <param name="node">Package node</param> |
227 | /// <param name="attributeName"></param> | 234 | /// <param name="attributeName">Attribute name</param> |
228 | /// <returns></returns> | 235 | /// <returns>The cache type</returns> |
229 | public static BOOTSTRAPPER_CACHE_TYPE? GetCacheTypeAttribute(XPathNavigator node, string attributeName) | 236 | public static BOOTSTRAPPER_CACHE_TYPE? GetCacheTypeAttribute(XPathNavigator node, string attributeName) |
230 | { | 237 | { |
231 | string attributeValue = BootstrapperApplicationData.GetAttribute(node, attributeName); | 238 | string attributeValue = BootstrapperApplicationData.GetAttribute(node, attributeName); |
@@ -250,11 +257,11 @@ namespace WixToolset.Mba.Core | |||
250 | } | 257 | } |
251 | 258 | ||
252 | /// <summary> | 259 | /// <summary> |
253 | /// | 260 | /// Parse the package type attribute |
254 | /// </summary> | 261 | /// </summary> |
255 | /// <param name="node"></param> | 262 | /// <param name="node">Package node</param> |
256 | /// <param name="attributeName"></param> | 263 | /// <param name="attributeName">Attribute name</param> |
257 | /// <returns></returns> | 264 | /// <returns>The package type</returns> |
258 | public static PackageType? GetPackageTypeAttribute(XPathNavigator node, string attributeName) | 265 | public static PackageType? GetPackageTypeAttribute(XPathNavigator node, string attributeName) |
259 | { | 266 | { |
260 | string attributeValue = BootstrapperApplicationData.GetAttribute(node, attributeName); | 267 | string attributeValue = BootstrapperApplicationData.GetAttribute(node, attributeName); |
@@ -291,13 +298,13 @@ namespace WixToolset.Mba.Core | |||
291 | } | 298 | } |
292 | 299 | ||
293 | /// <summary> | 300 | /// <summary> |
294 | /// | 301 | /// Create <see cref="IPackageInfo"/> from a related bundle. |
295 | /// </summary> | 302 | /// </summary> |
296 | /// <param name="id"></param> | 303 | /// <param name="id">Package id</param> |
297 | /// <param name="relationType"></param> | 304 | /// <param name="relationType">Relation type</param> |
298 | /// <param name="perMachine"></param> | 305 | /// <param name="perMachine">Whether the related bundle is per-machine</param> |
299 | /// <param name="version"></param> | 306 | /// <param name="version">The related bundle's version</param> |
300 | /// <returns></returns> | 307 | /// <returns>The package info</returns> |
301 | public static IPackageInfo GetRelatedBundleAsPackage(string id, RelationType relationType, bool perMachine, string version) | 308 | public static IPackageInfo GetRelatedBundleAsPackage(string id, RelationType relationType, bool perMachine, string version) |
302 | { | 309 | { |
303 | PackageInfo package = new PackageInfo(); | 310 | PackageInfo package = new PackageInfo(); |
@@ -323,10 +330,10 @@ namespace WixToolset.Mba.Core | |||
323 | } | 330 | } |
324 | 331 | ||
325 | /// <summary> | 332 | /// <summary> |
326 | /// | 333 | /// Create <see cref="IPackageInfo"/> from an update bundle. |
327 | /// </summary> | 334 | /// </summary> |
328 | /// <param name="id"></param> | 335 | /// <param name="id">Package id</param> |
329 | /// <returns></returns> | 336 | /// <returns>The package info</returns> |
330 | public static IPackageInfo GetUpdateBundleAsPackage(string id) | 337 | public static IPackageInfo GetUpdateBundleAsPackage(string id) |
331 | { | 338 | { |
332 | PackageInfo package = new PackageInfo(); | 339 | PackageInfo package = new PackageInfo(); |