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: