From d686f0d92fc14940441dbf53c28547a975572f92 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 23 Apr 2020 12:01:31 +1000 Subject: Add ManagedBootstrapperApplicationPrereqInformation element to move prereq info back to NetFx. --- src/wixext/BalCompiler.cs | 65 +++++++++++++++++++++++++++++++++++++ src/wixext/bal.xsd | 29 +++++++++++++++++ src/wixlib/NetFx451AsPrereq.wxs | 34 -------------------- src/wixlib/NetFx452AsPrereq.wxs | 34 -------------------- src/wixlib/NetFx45AsPrereq.wxs | 34 -------------------- src/wixlib/NetFx461AsPrereq.wxs | 34 -------------------- src/wixlib/NetFx462AsPrereq.wxs | 34 -------------------- src/wixlib/NetFx46AsPrereq.wxs | 34 -------------------- src/wixlib/NetFx4AsPrereq.wxs | 71 ----------------------------------------- src/wixlib/bal.wixproj | 7 ---- 10 files changed, 94 insertions(+), 282 deletions(-) delete mode 100644 src/wixlib/NetFx451AsPrereq.wxs delete mode 100644 src/wixlib/NetFx452AsPrereq.wxs delete mode 100644 src/wixlib/NetFx45AsPrereq.wxs delete mode 100644 src/wixlib/NetFx461AsPrereq.wxs delete mode 100644 src/wixlib/NetFx462AsPrereq.wxs delete mode 100644 src/wixlib/NetFx46AsPrereq.wxs delete mode 100644 src/wixlib/NetFx4AsPrereq.wxs diff --git a/src/wixext/BalCompiler.cs b/src/wixext/BalCompiler.cs index c291d41f..da32234c 100644 --- a/src/wixext/BalCompiler.cs +++ b/src/wixext/BalCompiler.cs @@ -46,6 +46,9 @@ namespace WixToolset.Bal case "Condition": this.ParseConditionElement(intermediate, section, element); break; + case "ManagedBootstrapperApplicationPrereqInformation": + this.ParseMbaPrereqInfoElement(intermediate, section, element); + break; default: this.ParseHelper.UnexpectedElement(parentElement, element); break; @@ -292,6 +295,68 @@ namespace WixToolset.Bal } } + /// + /// Parses a Condition element for Bundles. + /// + /// The element to parse. + private void ParseMbaPrereqInfoElement(Intermediate intermediate, IntermediateSection section, XElement node) + { + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node); + string packageId = null; + string licenseFile = null; + string licenseUrl = null; + + foreach (var attrib in node.Attributes()) + { + if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace) + { + switch (attrib.Name.LocalName) + { + case "LicenseFile": + licenseFile = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); + break; + case "LicenseUrl": + licenseUrl = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); + break; + case "PackageId": + packageId = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); + break; + default: + this.ParseHelper.UnexpectedAttribute(node, attrib); + break; + } + } + else + { + this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib); + } + } + + this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, node); + + if (null == packageId) + { + this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "PackageId")); + } + + if (null == licenseFile && null == licenseUrl || + null != licenseFile && null != licenseUrl) + { + this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "LicenseFile", "LicenseUrl", true)); + } + + if (!this.Messaging.EncounteredError) + { + section.AddTuple(new WixMbaPrereqInformationTuple(sourceLineNumbers) + { + PackageId = packageId, + LicenseFile = licenseFile, + LicenseUrl = licenseUrl, + }); + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.WixBundlePackage, packageId); + } + } + /// /// Parses a WixStandardBootstrapperApplication element for Bundles. /// diff --git a/src/wixext/bal.xsd b/src/wixext/bal.xsd index 73f10540..3081a279 100644 --- a/src/wixext/bal.xsd +++ b/src/wixext/bal.xsd @@ -186,6 +186,35 @@ + + + + Adds license information for a prereq package, should only be used when unable to add the license attributes to the package directly. + + + + + + + + + + Id of the target package. + + + + + Source file of the license. May not be used with LicenseUrl. + + + + + Source url of the license. May not be used with LicenseFile. + + + + + diff --git a/src/wixlib/NetFx451AsPrereq.wxs b/src/wixlib/NetFx451AsPrereq.wxs deleted file mode 100644 index 67c05b05..00000000 --- a/src/wixlib/NetFx451AsPrereq.wxs +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - $(var.NetFx451WebId) - $(var.NetFx451EulaLink) - - - - - - - - - - - - - $(var.NetFx451RedistId) - $(var.NetFx451EulaLink) - - - - diff --git a/src/wixlib/NetFx452AsPrereq.wxs b/src/wixlib/NetFx452AsPrereq.wxs deleted file mode 100644 index b41a9986..00000000 --- a/src/wixlib/NetFx452AsPrereq.wxs +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - $(var.NetFx452WebId) - $(var.NetFx452EulaLink) - - - - - - - - - - - - - $(var.NetFx452RedistId) - $(var.NetFx452EulaLink) - - - - diff --git a/src/wixlib/NetFx45AsPrereq.wxs b/src/wixlib/NetFx45AsPrereq.wxs deleted file mode 100644 index b95fc8a4..00000000 --- a/src/wixlib/NetFx45AsPrereq.wxs +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - $(var.NetFx45WebId) - $(var.NetFx45EulaLink) - - - - - - - - - - - - - $(var.NetFx45RedistId) - $(var.NetFx45EulaLink) - - - - diff --git a/src/wixlib/NetFx461AsPrereq.wxs b/src/wixlib/NetFx461AsPrereq.wxs deleted file mode 100644 index d6b24b43..00000000 --- a/src/wixlib/NetFx461AsPrereq.wxs +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - $(var.NetFx461WebId) - $(var.NetFx461EulaLink) - - - - - - - - - - - - - $(var.NetFx461RedistId) - $(var.NetFx461EulaLink) - - - - diff --git a/src/wixlib/NetFx462AsPrereq.wxs b/src/wixlib/NetFx462AsPrereq.wxs deleted file mode 100644 index e6f6889a..00000000 --- a/src/wixlib/NetFx462AsPrereq.wxs +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - $(var.NetFx462WebId) - $(var.NetFx462EulaLink) - - - - - - - - - - - - - $(var.NetFx462RedistId) - $(var.NetFx462EulaLink) - - - - diff --git a/src/wixlib/NetFx46AsPrereq.wxs b/src/wixlib/NetFx46AsPrereq.wxs deleted file mode 100644 index 52880022..00000000 --- a/src/wixlib/NetFx46AsPrereq.wxs +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - $(var.NetFx46WebId) - $(var.NetFx46EulaLink) - - - - - - - - - - - - - $(var.NetFx46RedistId) - $(var.NetFx46EulaLink) - - - - diff --git a/src/wixlib/NetFx4AsPrereq.wxs b/src/wixlib/NetFx4AsPrereq.wxs deleted file mode 100644 index 9b7437e5..00000000 --- a/src/wixlib/NetFx4AsPrereq.wxs +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - $(var.NetFx40WebId) - $(var.NetFx40EulaLink) - - - - - - - - - - - - - $(var.NetFx40RedistId) - $(var.NetFx40EulaLink) - - - - - - - - - - - - - $(var.NetFx40ClientWebId) - $(var.NetFx40EulaLink) - - - - - - - - - - - - - $(var.NetFx40ClientRedistId) - $(var.NetFx40EulaLink) - - - - - - - - - - - - - diff --git a/src/wixlib/bal.wixproj b/src/wixlib/bal.wixproj index 51268803..c33375fe 100644 --- a/src/wixlib/bal.wixproj +++ b/src/wixlib/bal.wixproj @@ -15,13 +15,6 @@ - - - - - - - -- cgit v1.2.3-55-g6feb