diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-05-13 15:39:40 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-05-14 11:12:31 -0500 |
commit | d5985a1688bc878e42ffd3ce3939fa52303cab16 (patch) | |
tree | 0c283fe5454659c569317b37840a040474cfa032 /src/ext/Bal/wixext/BalCompiler.cs | |
parent | 6a6974a15deb6edf593736cdb8043bfb93064782 (diff) | |
download | wix-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.cs | 27 |
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 | ||