@joebigelow / wix / commits / 643a5c5d

Fix parsing Behavior in ExitCode element.

Sean Hall committed Dec 21, 2020 at 16:37 UTC 643a5c5db1da6fb68fdc353bbbdbecaa1964425e
1 file changed +17 -2
src/WixToolset.Core/Compiler_Bundle.cs
+17 -2
@@ -1774,9 +1774,24 @@ namespace WixToolset.Core
1774 break;
1775 case "Behavior":
1776 var behaviorString = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1777 - if (!Enum.TryParse(behaviorString, true, out behavior))
1777 + switch (behaviorString)
1778 {
1779 - this.Core.Write(ErrorMessages.IllegalAttributeValueWithLegalList(sourceLineNumbers, node.Name.LocalName, "Behavior", behaviorString, "success, error, scheduleReboot, forceReboot"));
1779 + case "error":
1780 + behavior = ExitCodeBehaviorType.Error;
1781 + break;
1782 + case "forceReboot":
1783 + behavior = ExitCodeBehaviorType.ForceReboot;
1784 + break;
1785 + case "scheduleReboot":
1786 + behavior = ExitCodeBehaviorType.ScheduleReboot;
1787 + break;
1788 + case "success":
1789 + behavior = ExitCodeBehaviorType.Success;
1790 + break;
1791 + default:
1792 + this.Core.Write(ErrorMessages.IllegalAttributeValueWithLegalList(sourceLineNumbers, node.Name.LocalName, "Behavior", behaviorString, "success, error, scheduleReboot, forceReboot"));
1793 + behavior = ExitCodeBehaviorType.Success; // set value to avoid ExpectedAttribute below.
1794 + break;
1795 }
1796 break;
1797 default: