aboutsummaryrefslogtreecommitdiff
path: root/src/ext/Bal/wixext/BalCompiler.cs
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-05-13 15:39:40 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-05-14 11:12:31 -0500
commitd5985a1688bc878e42ffd3ce3939fa52303cab16 (patch)
tree0c283fe5454659c569317b37840a040474cfa032 /src/ext/Bal/wixext/BalCompiler.cs
parent6a6974a15deb6edf593736cdb8043bfb93064782 (diff)
downloadwix-d5985a1688bc878e42ffd3ce3939fa52303cab16.tar.gz
wix-d5985a1688bc878e42ffd3ce3939fa52303cab16.tar.bz2
wix-d5985a1688bc878e42ffd3ce3939fa52303cab16.zip
Add option to hosts to always install prereqs.
Add PrereqPackage to BundlePackage Implements 4718
Diffstat (limited to 'src/ext/Bal/wixext/BalCompiler.cs')
-rw-r--r--src/ext/Bal/wixext/BalCompiler.cs27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/ext/Bal/wixext/BalCompiler.cs b/src/ext/Bal/wixext/BalCompiler.cs
index 267345e7..1721f252 100644
--- a/src/ext/Bal/wixext/BalCompiler.cs
+++ b/src/ext/Bal/wixext/BalCompiler.cs
@@ -117,6 +117,7 @@ namespace WixToolset.Bal
117 117
118 switch (parentElement.Name.LocalName) 118 switch (parentElement.Name.LocalName)
119 { 119 {
120 case "BundlePackage":
120 case "ExePackage": 121 case "ExePackage":
121 case "MsiPackage": 122 case "MsiPackage":
122 case "MspPackage": 123 case "MspPackage":
@@ -216,7 +217,7 @@ namespace WixToolset.Bal
216 case "PrereqPackage": 217 case "PrereqPackage":
217 if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attribute)) 218 if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attribute))
218 { 219 {
219 if (!this.prereqInfoSymbolsByPackageId.TryGetValue(packageId, out prereqInfo)) 220 if (!this.prereqInfoSymbolsByPackageId.TryGetValue(packageId, out _))
220 { 221 {
221 prereqInfo = section.AddSymbol(new WixMbaPrereqInformationSymbol(sourceLineNumbers) 222 prereqInfo = section.AddSymbol(new WixMbaPrereqInformationSymbol(sourceLineNumbers)
222 { 223 {
@@ -703,6 +704,7 @@ namespace WixToolset.Bal
703 private void ParseWixManagedBootstrapperApplicationHostElement(Intermediate intermediate, IntermediateSection section, XElement node) 704 private void ParseWixManagedBootstrapperApplicationHostElement(Intermediate intermediate, IntermediateSection section, XElement node)
704 { 705 {
705 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node); 706 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
707 bool alwaysInstallPrereqs = false;
706 string logoFile = null; 708 string logoFile = null;
707 string themeFile = null; 709 string themeFile = null;
708 string localizationFile = null; 710 string localizationFile = null;
@@ -714,6 +716,9 @@ namespace WixToolset.Bal
714 { 716 {
715 switch (attrib.Name.LocalName) 717 switch (attrib.Name.LocalName)
716 { 718 {
719 case "AlwaysInstallPrereqs":
720 alwaysInstallPrereqs = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) == YesNoType.Yes;
721 break;
717 case "LogoFile": 722 case "LogoFile":
718 logoFile = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 723 logoFile = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
719 break; 724 break;
@@ -792,6 +797,14 @@ namespace WixToolset.Bal
792 } 797 }
793 798
794 this.CreateBARef(section, sourceLineNumbers, node, baId); 799 this.CreateBARef(section, sourceLineNumbers, node, baId);
800
801 if (alwaysInstallPrereqs)
802 {
803 section.AddSymbol(new WixMbaPrereqOptionsSymbol(sourceLineNumbers, new Identifier(AccessModifier.Global, "WixMbaPrereqOptions"))
804 {
805 AlwaysInstallPrereqs = 1,
806 });
807 }
795 } 808 }
796 } 809 }
797 810
@@ -802,6 +815,7 @@ namespace WixToolset.Bal
802 private void ParseWixDotNetCoreBootstrapperApplicationHostElement(Intermediate intermediate, IntermediateSection section, XElement node) 815 private void ParseWixDotNetCoreBootstrapperApplicationHostElement(Intermediate intermediate, IntermediateSection section, XElement node)
803 { 816 {
804 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node); 817 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
818 bool alwaysInstallPrereqs = false;
805 string logoFile = null; 819 string logoFile = null;
806 string themeFile = null; 820 string themeFile = null;
807 string localizationFile = null; 821 string localizationFile = null;
@@ -814,6 +828,9 @@ namespace WixToolset.Bal
814 { 828 {
815 switch (attrib.Name.LocalName) 829 switch (attrib.Name.LocalName)
816 { 830 {
831 case "AlwaysInstallPrereqs":
832 alwaysInstallPrereqs = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) == YesNoType.Yes;
833 break;
817 case "LogoFile": 834 case "LogoFile":
818 logoFile = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 835 logoFile = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
819 break; 836 break;
@@ -903,6 +920,14 @@ namespace WixToolset.Bal
903 } 920 }
904 921
905 this.CreateBARef(section, sourceLineNumbers, node, baId); 922 this.CreateBARef(section, sourceLineNumbers, node, baId);
923
924 if (alwaysInstallPrereqs)
925 {
926 section.AddSymbol(new WixMbaPrereqOptionsSymbol(sourceLineNumbers, new Identifier(AccessModifier.Global, "WixMbaPrereqOptions"))
927 {
928 AlwaysInstallPrereqs = 1,
929 });
930 }
906 } 931 }
907 } 932 }
908 933