diff options
Diffstat (limited to 'src')
12 files changed, 37 insertions, 409 deletions
diff --git a/src/WixToolset.Core/Common.cs b/src/WixToolset.Core/Common.cs index e6f30e0c..183d7abd 100644 --- a/src/WixToolset.Core/Common.cs +++ b/src/WixToolset.Core/Common.cs | |||
@@ -690,10 +690,8 @@ namespace WixToolset.Core | |||
690 | /// <summary> | 690 | /// <summary> |
691 | /// Gets the text of an XElement. | 691 | /// Gets the text of an XElement. |
692 | /// </summary> | 692 | /// </summary> |
693 | /// <param name="sourceLineNumbers">Source line information about the owner element.</param> | 693 | /// <param name="node">Element to get text.</param> |
694 | /// <param name="attribute">The attribute containing the value to get.</param> | 694 | /// <returns>The element's text.</returns> |
695 | /// <param name="messageHandler">A delegate that receives error messages.</param> | ||
696 | /// <returns>The attribute's YesNoType value.</returns> | ||
697 | internal static string GetInnerText(XElement node) | 695 | internal static string GetInnerText(XElement node) |
698 | { | 696 | { |
699 | var text = node.Nodes().Where(n => XmlNodeType.Text == n.NodeType || XmlNodeType.CDATA == n.NodeType).Cast<XText>().FirstOrDefault(); | 697 | var text = node.Nodes().Where(n => XmlNodeType.Text == n.NodeType || XmlNodeType.CDATA == n.NodeType).Cast<XText>().FirstOrDefault(); |
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs index 5bd923dd..28290569 100644 --- a/src/WixToolset.Core/Compiler.cs +++ b/src/WixToolset.Core/Compiler.cs | |||
@@ -2319,14 +2319,6 @@ namespace WixToolset.Core | |||
2319 | case "Class": | 2319 | case "Class": |
2320 | this.ParseClassElement(child, id.Id, YesNoType.NotSet, null, null, null, null); | 2320 | this.ParseClassElement(child, id.Id, YesNoType.NotSet, null, null, null, null); |
2321 | break; | 2321 | break; |
2322 | case "Condition": | ||
2323 | if (null != condition) | ||
2324 | { | ||
2325 | var childSourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | ||
2326 | this.Core.Write(ErrorMessages.TooManyChildren(childSourceLineNumbers, node.Name.LocalName, child.Name.LocalName)); | ||
2327 | } | ||
2328 | condition = this.ParseConditionElement(child, node.Name.LocalName, null, null); | ||
2329 | break; | ||
2330 | case "CopyFile": | 2322 | case "CopyFile": |
2331 | this.ParseCopyFileElement(child, id.Id, null); | 2323 | this.ParseCopyFileElement(child, id.Id, null); |
2332 | break; | 2324 | break; |
@@ -3382,17 +3374,12 @@ namespace WixToolset.Core | |||
3382 | win64 = true; | 3374 | win64 = true; |
3383 | } | 3375 | } |
3384 | 3376 | ||
3385 | // get the inner text if any exists | ||
3386 | var innerText = this.Core.GetTrimmedInnerText(node); | ||
3387 | |||
3388 | // if we have an in-lined Script CustomAction ensure no source or target attributes were provided | 3377 | // if we have an in-lined Script CustomAction ensure no source or target attributes were provided |
3389 | if (inlineScript) | 3378 | if (inlineScript) |
3390 | { | 3379 | { |
3391 | if (String.IsNullOrEmpty(scriptFile)) | 3380 | if (String.IsNullOrEmpty(scriptFile)) |
3392 | { | 3381 | { |
3393 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "ScriptFile", "Script")); | 3382 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "ScriptFile", "Script")); |
3394 | |||
3395 | target = innerText; | ||
3396 | } | 3383 | } |
3397 | } | 3384 | } |
3398 | else if (CustomActionTargetType.VBScript == targetType) // non-inline vbscript | 3385 | else if (CustomActionTargetType.VBScript == targetType) // non-inline vbscript |
@@ -3428,10 +3415,6 @@ namespace WixToolset.Core | |||
3428 | { | 3415 | { |
3429 | this.Core.Write(ErrorMessages.IllegalAttributeWithoutOtherAttributes(sourceLineNumbers, node.Name.LocalName, "Value", "Directory", "Property", "Error")); | 3416 | this.Core.Write(ErrorMessages.IllegalAttributeWithoutOtherAttributes(sourceLineNumbers, node.Name.LocalName, "Value", "Directory", "Property", "Error")); |
3430 | } | 3417 | } |
3431 | else if (!String.IsNullOrEmpty(innerText)) // inner text cannot be specified with non-script CAs | ||
3432 | { | ||
3433 | this.Core.Write(ErrorMessages.CustomActionIllegalInnerText(sourceLineNumbers, node.Name.LocalName, innerText, "Script")); | ||
3434 | } | ||
3435 | 3418 | ||
3436 | if (!inlineScript && !String.IsNullOrEmpty(scriptFile)) | 3419 | if (!inlineScript && !String.IsNullOrEmpty(scriptFile)) |
3437 | { | 3420 | { |
@@ -4053,11 +4036,6 @@ namespace WixToolset.Core | |||
4053 | this.Core.Write(ErrorMessages.ExpectedAttribute(childSourceLineNumbers, child.Name.LocalName, "Column")); | 4036 | this.Core.Write(ErrorMessages.ExpectedAttribute(childSourceLineNumbers, child.Name.LocalName, "Column")); |
4054 | } | 4037 | } |
4055 | 4038 | ||
4056 | if (String.IsNullOrEmpty(data)) | ||
4057 | { | ||
4058 | data = Common.GetInnerText(child); | ||
4059 | } | ||
4060 | |||
4061 | if (!this.Core.EncounteredError) | 4039 | if (!this.Core.EncounteredError) |
4062 | { | 4040 | { |
4063 | this.Core.AddTuple(new WixCustomTableCellTuple(childSourceLineNumbers, new Identifier(AccessModifier.Private, tableId, rowId, columnName)) | 4041 | this.Core.AddTuple(new WixCustomTableCellTuple(childSourceLineNumbers, new Identifier(AccessModifier.Private, tableId, rowId, columnName)) |
@@ -4864,9 +4842,6 @@ namespace WixToolset.Core | |||
4864 | case "Component": | 4842 | case "Component": |
4865 | this.ParseComponentElement(child, ComplexReferenceParentType.Feature, id.Id, null, CompilerConstants.IntegerNotSet, null, null); | 4843 | this.ParseComponentElement(child, ComplexReferenceParentType.Feature, id.Id, null, CompilerConstants.IntegerNotSet, null, null); |
4866 | break; | 4844 | break; |
4867 | case "Condition": | ||
4868 | this.ParseConditionElement(child, node.Name.LocalName, id.Id, null); | ||
4869 | break; | ||
4870 | case "Feature": | 4845 | case "Feature": |
4871 | this.ParseFeatureElement(child, ComplexReferenceParentType.Feature, id.Id, ref childDisplay); | 4846 | this.ParseFeatureElement(child, ComplexReferenceParentType.Feature, id.Id, ref childDisplay); |
4872 | break; | 4847 | break; |
@@ -5368,11 +5343,6 @@ namespace WixToolset.Core | |||
5368 | id = CompilerConstants.IllegalInteger; | 5343 | id = CompilerConstants.IllegalInteger; |
5369 | } | 5344 | } |
5370 | 5345 | ||
5371 | if (String.IsNullOrEmpty(message)) | ||
5372 | { | ||
5373 | message = Common.GetInnerText(node); | ||
5374 | } | ||
5375 | |||
5376 | this.Core.ParseForExtensionElements(node); | 5346 | this.Core.ParseForExtensionElements(node); |
5377 | 5347 | ||
5378 | if (!this.Core.EncounteredError) | 5348 | if (!this.Core.EncounteredError) |
@@ -6232,9 +6202,6 @@ namespace WixToolset.Core | |||
6232 | case "ComponentGroup": | 6202 | case "ComponentGroup": |
6233 | this.ParseComponentGroupElement(child, ComplexReferenceParentType.Unknown, id?.Id); | 6203 | this.ParseComponentGroupElement(child, ComplexReferenceParentType.Unknown, id?.Id); |
6234 | break; | 6204 | break; |
6235 | case "Condition": | ||
6236 | this.ParseConditionElement(child, node.Name.LocalName, null, null); | ||
6237 | break; | ||
6238 | case "Container": | 6205 | case "Container": |
6239 | this.ParseContainerElement(child); | 6206 | this.ParseContainerElement(child); |
6240 | break; | 6207 | break; |
@@ -6419,161 +6386,6 @@ namespace WixToolset.Core | |||
6419 | } | 6386 | } |
6420 | 6387 | ||
6421 | /// <summary> | 6388 | /// <summary> |
6422 | /// Parses a condition element. | ||
6423 | /// </summary> | ||
6424 | /// <param name="node">Element to parse.</param> | ||
6425 | /// <param name="parentElementLocalName">LocalName of the parent element.</param> | ||
6426 | /// <param name="id">Id of the parent element.</param> | ||
6427 | /// <param name="dialog">Dialog of the parent element if its a Control.</param> | ||
6428 | /// <returns>The condition if one was found.</returns> | ||
6429 | private string ParseConditionElement(XElement node, string parentElementLocalName, string id, string dialog) | ||
6430 | { | ||
6431 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | ||
6432 | string action = null; | ||
6433 | string condition = null; | ||
6434 | var level = CompilerConstants.IntegerNotSet; | ||
6435 | string message = null; | ||
6436 | |||
6437 | foreach (var attrib in node.Attributes()) | ||
6438 | { | ||
6439 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || CompilerCore.WixNamespace == attrib.Name.Namespace) | ||
6440 | { | ||
6441 | switch (attrib.Name.LocalName) | ||
6442 | { | ||
6443 | case "Action": | ||
6444 | if ("Control" == parentElementLocalName) | ||
6445 | { | ||
6446 | action = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
6447 | switch (action) | ||
6448 | { | ||
6449 | case "default": | ||
6450 | action = "Default"; | ||
6451 | break; | ||
6452 | case "disable": | ||
6453 | action = "Disable"; | ||
6454 | break; | ||
6455 | case "enable": | ||
6456 | action = "Enable"; | ||
6457 | break; | ||
6458 | case "hide": | ||
6459 | action = "Hide"; | ||
6460 | break; | ||
6461 | case "show": | ||
6462 | action = "Show"; | ||
6463 | break; | ||
6464 | case "": | ||
6465 | break; | ||
6466 | default: | ||
6467 | this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, action, "default", "disable", "enable", "hide", "show")); | ||
6468 | break; | ||
6469 | } | ||
6470 | } | ||
6471 | else | ||
6472 | { | ||
6473 | this.Core.UnexpectedAttribute(node, attrib); | ||
6474 | } | ||
6475 | break; | ||
6476 | case "Level": | ||
6477 | if ("Feature" == parentElementLocalName) | ||
6478 | { | ||
6479 | level = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, Int16.MaxValue); | ||
6480 | } | ||
6481 | else | ||
6482 | { | ||
6483 | this.Core.UnexpectedAttribute(node, attrib); | ||
6484 | } | ||
6485 | break; | ||
6486 | case "Message": | ||
6487 | if ("Fragment" == parentElementLocalName || "Product" == parentElementLocalName) | ||
6488 | { | ||
6489 | message = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
6490 | } | ||
6491 | else | ||
6492 | { | ||
6493 | this.Core.UnexpectedAttribute(node, attrib); | ||
6494 | } | ||
6495 | break; | ||
6496 | default: | ||
6497 | this.Core.UnexpectedAttribute(node, attrib); | ||
6498 | break; | ||
6499 | } | ||
6500 | } | ||
6501 | else | ||
6502 | { | ||
6503 | this.Core.ParseExtensionAttribute(node, attrib); | ||
6504 | } | ||
6505 | } | ||
6506 | |||
6507 | // get the condition from the inner text of the element | ||
6508 | condition = this.Core.GetConditionInnerText(node); | ||
6509 | |||
6510 | this.Core.ParseForExtensionElements(node); | ||
6511 | |||
6512 | // the condition should not be empty | ||
6513 | if (null == condition || 0 == condition.Length) | ||
6514 | { | ||
6515 | condition = null; | ||
6516 | this.Core.Write(ErrorMessages.ConditionExpected(sourceLineNumbers, node.Name.LocalName)); | ||
6517 | } | ||
6518 | |||
6519 | switch (parentElementLocalName) | ||
6520 | { | ||
6521 | case "Control": | ||
6522 | if (null == action) | ||
6523 | { | ||
6524 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Action")); | ||
6525 | } | ||
6526 | |||
6527 | if (!this.Core.EncounteredError) | ||
6528 | { | ||
6529 | this.Core.AddTuple(new ControlConditionTuple(sourceLineNumbers) | ||
6530 | { | ||
6531 | DialogRef = dialog, | ||
6532 | ControlRef = id, | ||
6533 | Action = action, | ||
6534 | Condition = condition, | ||
6535 | }); | ||
6536 | } | ||
6537 | break; | ||
6538 | case "Feature": | ||
6539 | if (CompilerConstants.IntegerNotSet == level) | ||
6540 | { | ||
6541 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Level")); | ||
6542 | level = CompilerConstants.IllegalInteger; | ||
6543 | } | ||
6544 | |||
6545 | if (!this.Core.EncounteredError) | ||
6546 | { | ||
6547 | this.Core.AddTuple(new ConditionTuple(sourceLineNumbers) | ||
6548 | { | ||
6549 | FeatureRef = id, | ||
6550 | Level = level, | ||
6551 | Condition = condition | ||
6552 | }); | ||
6553 | } | ||
6554 | break; | ||
6555 | case "Fragment": | ||
6556 | case "Product": | ||
6557 | if (null == message) | ||
6558 | { | ||
6559 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Message")); | ||
6560 | } | ||
6561 | |||
6562 | if (!this.Core.EncounteredError) | ||
6563 | { | ||
6564 | this.Core.AddTuple(new LaunchConditionTuple(sourceLineNumbers) | ||
6565 | { | ||
6566 | Condition = condition, | ||
6567 | Description = message | ||
6568 | }); | ||
6569 | } | ||
6570 | break; | ||
6571 | } | ||
6572 | |||
6573 | return condition; | ||
6574 | } | ||
6575 | |||
6576 | /// <summary> | ||
6577 | /// Parses a IniFile element. | 6389 | /// Parses a IniFile element. |
6578 | /// </summary> | 6390 | /// </summary> |
6579 | /// <param name="node">Element to parse.</param> | 6391 | /// <param name="node">Element to parse.</param> |
diff --git a/src/WixToolset.Core/CompilerCore.cs b/src/WixToolset.Core/CompilerCore.cs index 93f9276c..5d0edaf1 100644 --- a/src/WixToolset.Core/CompilerCore.cs +++ b/src/WixToolset.Core/CompilerCore.cs | |||
@@ -322,26 +322,6 @@ namespace WixToolset.Core | |||
322 | } | 322 | } |
323 | 323 | ||
324 | /// <summary> | 324 | /// <summary> |
325 | /// Get an element's inner text and trims any extra whitespace. | ||
326 | /// </summary> | ||
327 | /// <param name="element">The element with inner text to be trimmed.</param> | ||
328 | /// <returns>The node's inner text trimmed.</returns> | ||
329 | public string GetTrimmedInnerText(XElement element) | ||
330 | { | ||
331 | return this.parseHelper.GetTrimmedInnerText(element); | ||
332 | } | ||
333 | |||
334 | /// <summary> | ||
335 | /// Gets element's inner text and ensure's it is safe for use in a condition by trimming any extra whitespace. | ||
336 | /// </summary> | ||
337 | /// <param name="element">The element to ensure inner text is a condition.</param> | ||
338 | /// <returns>The value converted into a safe condition.</returns> | ||
339 | public string GetConditionInnerText(XElement element) | ||
340 | { | ||
341 | return this.parseHelper.GetConditionInnerText(element); | ||
342 | } | ||
343 | |||
344 | /// <summary> | ||
345 | /// Creates a version 3 name-based UUID. | 325 | /// Creates a version 3 name-based UUID. |
346 | /// </summary> | 326 | /// </summary> |
347 | /// <param name="namespaceGuid">The namespace UUID.</param> | 327 | /// <param name="namespaceGuid">The namespace UUID.</param> |
diff --git a/src/WixToolset.Core/Compiler_2.cs b/src/WixToolset.Core/Compiler_2.cs index df4c037d..18a0366e 100644 --- a/src/WixToolset.Core/Compiler_2.cs +++ b/src/WixToolset.Core/Compiler_2.cs | |||
@@ -186,9 +186,6 @@ namespace WixToolset.Core | |||
186 | case "ComponentGroup": | 186 | case "ComponentGroup": |
187 | this.ParseComponentGroupElement(child, ComplexReferenceParentType.Unknown, null); | 187 | this.ParseComponentGroupElement(child, ComplexReferenceParentType.Unknown, null); |
188 | break; | 188 | break; |
189 | case "Condition": | ||
190 | this.ParseConditionElement(child, node.Name.LocalName, null, null); | ||
191 | break; | ||
192 | case "CustomAction": | 189 | case "CustomAction": |
193 | this.ParseCustomActionElement(child); | 190 | this.ParseCustomActionElement(child); |
194 | break; | 191 | break; |
@@ -228,6 +225,9 @@ namespace WixToolset.Core | |||
228 | case "InstanceTransforms": | 225 | case "InstanceTransforms": |
229 | this.ParseInstanceTransformsElement(child); | 226 | this.ParseInstanceTransformsElement(child); |
230 | break; | 227 | break; |
228 | case "Launch": | ||
229 | this.ParseLaunchElement(child); | ||
230 | break; | ||
231 | case "MajorUpgrade": | 231 | case "MajorUpgrade": |
232 | this.ParseMajorUpgradeElement(child, contextValues); | 232 | this.ParseMajorUpgradeElement(child, contextValues); |
233 | break; | 233 | break; |
@@ -1235,31 +1235,7 @@ namespace WixToolset.Core | |||
1235 | id = this.Core.CreateIdentifier("pme", objectId, tableName, sddl); | 1235 | id = this.Core.CreateIdentifier("pme", objectId, tableName, sddl); |
1236 | } | 1236 | } |
1237 | 1237 | ||
1238 | foreach (var child in node.Elements()) | 1238 | this.Core.ParseForExtensionElements(node); |
1239 | { | ||
1240 | if (CompilerCore.WixNamespace == child.Name.Namespace) | ||
1241 | { | ||
1242 | switch (child.Name.LocalName) | ||
1243 | { | ||
1244 | case "Condition": | ||
1245 | if (null != condition) | ||
1246 | { | ||
1247 | var childSourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | ||
1248 | this.Core.Write(ErrorMessages.TooManyChildren(childSourceLineNumbers, node.Name.LocalName, child.Name.LocalName)); | ||
1249 | } | ||
1250 | |||
1251 | condition = this.ParseConditionElement(child, node.Name.LocalName, null, null); | ||
1252 | break; | ||
1253 | default: | ||
1254 | this.Core.UnexpectedElement(node, child); | ||
1255 | break; | ||
1256 | } | ||
1257 | } | ||
1258 | else | ||
1259 | { | ||
1260 | this.Core.ParseExtensionElement(node, child); | ||
1261 | } | ||
1262 | } | ||
1263 | 1239 | ||
1264 | if (!this.Core.EncounteredError) | 1240 | if (!this.Core.EncounteredError) |
1265 | { | 1241 | { |
@@ -1537,20 +1513,6 @@ namespace WixToolset.Core | |||
1537 | this.Core.Write(ErrorMessages.CannotAuthorSpecialProperties(sourceLineNumbers, id.Id)); | 1513 | this.Core.Write(ErrorMessages.CannotAuthorSpecialProperties(sourceLineNumbers, id.Id)); |
1538 | } | 1514 | } |
1539 | 1515 | ||
1540 | var innerText = this.Core.GetTrimmedInnerText(node); | ||
1541 | if (null != value) | ||
1542 | { | ||
1543 | // cannot specify both the value attribute and inner text | ||
1544 | if (!String.IsNullOrEmpty(innerText)) | ||
1545 | { | ||
1546 | this.Core.Write(ErrorMessages.IllegalAttributeWithInnerText(sourceLineNumbers, node.Name.LocalName, "Value")); | ||
1547 | } | ||
1548 | } | ||
1549 | else // value attribute not specified, use inner text if any. | ||
1550 | { | ||
1551 | value = innerText; | ||
1552 | } | ||
1553 | |||
1554 | if ("ErrorDialog" == id.Id) | 1516 | if ("ErrorDialog" == id.Id) |
1555 | { | 1517 | { |
1556 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Dialog, value); | 1518 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Dialog, value); |
@@ -2092,11 +2054,6 @@ namespace WixToolset.Core | |||
2092 | 2054 | ||
2093 | if (multiStringValue == null) | 2055 | if (multiStringValue == null) |
2094 | { | 2056 | { |
2095 | multiStringValue = Common.GetInnerText(node); | ||
2096 | } | ||
2097 | |||
2098 | if (multiStringValue == null) | ||
2099 | { | ||
2100 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value")); | 2057 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value")); |
2101 | } | 2058 | } |
2102 | 2059 | ||
@@ -2683,12 +2640,6 @@ namespace WixToolset.Core | |||
2683 | } | 2640 | } |
2684 | } | 2641 | } |
2685 | 2642 | ||
2686 | // Get the condition from the inner text of the element. | ||
2687 | if (condition == null) | ||
2688 | { | ||
2689 | condition = this.Core.GetConditionInnerText(child); | ||
2690 | } | ||
2691 | |||
2692 | if (customAction && "Custom" == actionName) | 2643 | if (customAction && "Custom" == actionName) |
2693 | { | 2644 | { |
2694 | this.Core.Write(ErrorMessages.ExpectedAttribute(childSourceLineNumbers, child.Name.LocalName, "Action")); | 2645 | this.Core.Write(ErrorMessages.ExpectedAttribute(childSourceLineNumbers, child.Name.LocalName, "Action")); |
@@ -3154,11 +3105,6 @@ namespace WixToolset.Core | |||
3154 | 3105 | ||
3155 | if (privilege == null) | 3106 | if (privilege == null) |
3156 | { | 3107 | { |
3157 | privilege = Common.GetInnerText(node); | ||
3158 | } | ||
3159 | |||
3160 | if (privilege == null) | ||
3161 | { | ||
3162 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Name")); | 3108 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Name")); |
3163 | } | 3109 | } |
3164 | 3110 | ||
@@ -3520,11 +3466,6 @@ namespace WixToolset.Core | |||
3520 | 3466 | ||
3521 | if (argument == null) | 3467 | if (argument == null) |
3522 | { | 3468 | { |
3523 | argument = this.Core.GetTrimmedInnerText(node); | ||
3524 | } | ||
3525 | |||
3526 | if (argument == null) | ||
3527 | { | ||
3528 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value")); | 3469 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value")); |
3529 | } | 3470 | } |
3530 | 3471 | ||
@@ -3860,11 +3801,6 @@ namespace WixToolset.Core | |||
3860 | } | 3801 | } |
3861 | } | 3802 | } |
3862 | 3803 | ||
3863 | if (condition == null) | ||
3864 | { | ||
3865 | condition = this.Core.GetConditionInnerText(node); | ||
3866 | } | ||
3867 | |||
3868 | if (null == id) | 3804 | if (null == id) |
3869 | { | 3805 | { |
3870 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id")); | 3806 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id")); |
@@ -3957,29 +3893,6 @@ namespace WixToolset.Core | |||
3957 | this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, sequenceValue, "execute", "ui", "both")); | 3893 | this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, sequenceValue, "execute", "ui", "both")); |
3958 | break; | 3894 | break; |
3959 | } | 3895 | } |
3960 | //if (0 < sequenceValue.Length) | ||
3961 | //{ | ||
3962 | // var sequenceType = Wix.Enums.ParseSequenceType(sequenceValue); | ||
3963 | // switch (sequenceType) | ||
3964 | // { | ||
3965 | // case Wix.SequenceType.execute: | ||
3966 | // sequences = new string[] { "InstallExecuteSequence" }; | ||
3967 | // break; | ||
3968 | // case Wix.SequenceType.ui: | ||
3969 | // sequences = new string[] { "InstallUISequence" }; | ||
3970 | // break; | ||
3971 | // case Wix.SequenceType.first: | ||
3972 | // firstSequence = true; | ||
3973 | // // default puts it in both sequence which is what we want | ||
3974 | // break; | ||
3975 | // case Wix.SequenceType.both: | ||
3976 | // // default so no work necessary. | ||
3977 | // break; | ||
3978 | // default: | ||
3979 | // this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, sequenceValue, "execute", "ui", "both")); | ||
3980 | // break; | ||
3981 | // } | ||
3982 | //} | ||
3983 | break; | 3896 | break; |
3984 | case "Value": | 3897 | case "Value": |
3985 | value = this.Core.GetAttributeValue(sourceLineNumbers, attrib, EmptyRule.CanBeEmpty); | 3898 | value = this.Core.GetAttributeValue(sourceLineNumbers, attrib, EmptyRule.CanBeEmpty); |
@@ -3995,11 +3908,6 @@ namespace WixToolset.Core | |||
3995 | } | 3908 | } |
3996 | } | 3909 | } |
3997 | 3910 | ||
3998 | if (condition == null) | ||
3999 | { | ||
4000 | condition = this.Core.GetConditionInnerText(node); | ||
4001 | } | ||
4002 | |||
4003 | if (null == id) | 3911 | if (null == id) |
4004 | { | 3912 | { |
4005 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id")); | 3913 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id")); |
@@ -4528,19 +4436,6 @@ namespace WixToolset.Core | |||
4528 | id = this.Core.CreateIdentifier("scp", shortcutId, key.ToUpperInvariant()); | 4436 | id = this.Core.CreateIdentifier("scp", shortcutId, key.ToUpperInvariant()); |
4529 | } | 4437 | } |
4530 | 4438 | ||
4531 | var innerText = this.Core.GetTrimmedInnerText(node); | ||
4532 | if (!String.IsNullOrEmpty(innerText)) | ||
4533 | { | ||
4534 | if (String.IsNullOrEmpty(value)) | ||
4535 | { | ||
4536 | value = innerText; | ||
4537 | } | ||
4538 | else // cannot specify both the value attribute and inner text | ||
4539 | { | ||
4540 | this.Core.Write(ErrorMessages.IllegalAttributeWithInnerText(sourceLineNumbers, node.Name.LocalName, "Value")); | ||
4541 | } | ||
4542 | } | ||
4543 | |||
4544 | if (String.IsNullOrEmpty(value)) | 4439 | if (String.IsNullOrEmpty(value)) |
4545 | { | 4440 | { |
4546 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value")); | 4441 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value")); |
diff --git a/src/WixToolset.Core/Compiler_Bundle.cs b/src/WixToolset.Core/Compiler_Bundle.cs index 2b274474..d88cb7f5 100644 --- a/src/WixToolset.Core/Compiler_Bundle.cs +++ b/src/WixToolset.Core/Compiler_Bundle.cs | |||
@@ -1056,11 +1056,6 @@ namespace WixToolset.Core | |||
1056 | this.Core.Write(ErrorMessages.ExpectedAttribute(childSourceLineNumbers, child.Name.LocalName, "Id")); | 1056 | this.Core.Write(ErrorMessages.ExpectedAttribute(childSourceLineNumbers, child.Name.LocalName, "Id")); |
1057 | } | 1057 | } |
1058 | 1058 | ||
1059 | if (String.IsNullOrEmpty(value)) | ||
1060 | { | ||
1061 | value = Common.GetInnerText(child); | ||
1062 | } | ||
1063 | |||
1064 | if (!this.Core.EncounteredError) | 1059 | if (!this.Core.EncounteredError) |
1065 | { | 1060 | { |
1066 | this.Core.AddTuple(new WixBundleCustomDataCellTuple(childSourceLineNumbers, new Identifier(AccessModifier.Private, customDataId, elementId, attributeName)) | 1061 | this.Core.AddTuple(new WixBundleCustomDataCellTuple(childSourceLineNumbers, new Identifier(AccessModifier.Private, customDataId, elementId, attributeName)) |
diff --git a/src/WixToolset.Core/Compiler_EmbeddedUI.cs b/src/WixToolset.Core/Compiler_EmbeddedUI.cs index 1827a200..847ee2a8 100644 --- a/src/WixToolset.Core/Compiler_EmbeddedUI.cs +++ b/src/WixToolset.Core/Compiler_EmbeddedUI.cs | |||
@@ -80,12 +80,6 @@ namespace WixToolset.Core | |||
80 | } | 80 | } |
81 | } | 81 | } |
82 | 82 | ||
83 | if (condition == null) | ||
84 | { | ||
85 | // Get the condition from the inner text of the element. | ||
86 | condition = this.Core.GetConditionInnerText(node); | ||
87 | } | ||
88 | |||
89 | if (null == id) | 83 | if (null == id) |
90 | { | 84 | { |
91 | id = this.Core.CreateIdentifier("mec", source, type.ToString()); | 85 | id = this.Core.CreateIdentifier("mec", source, type.ToString()); |
diff --git a/src/WixToolset.Core/Compiler_UI.cs b/src/WixToolset.Core/Compiler_UI.cs index 5c2400e4..5066ff1a 100644 --- a/src/WixToolset.Core/Compiler_UI.cs +++ b/src/WixToolset.Core/Compiler_UI.cs | |||
@@ -700,11 +700,6 @@ namespace WixToolset.Core | |||
700 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Action")); | 700 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Action")); |
701 | } | 701 | } |
702 | 702 | ||
703 | if (null == message) | ||
704 | { | ||
705 | message = Common.GetInnerText(node); | ||
706 | } | ||
707 | |||
708 | this.Core.ParseForExtensionElements(node); | 703 | this.Core.ParseForExtensionElements(node); |
709 | 704 | ||
710 | if (!this.Core.EncounteredError) | 705 | if (!this.Core.EncounteredError) |
@@ -751,11 +746,6 @@ namespace WixToolset.Core | |||
751 | } | 746 | } |
752 | } | 747 | } |
753 | 748 | ||
754 | if (null == text) | ||
755 | { | ||
756 | text = Common.GetInnerText(node); | ||
757 | } | ||
758 | |||
759 | if (null == id) | 749 | if (null == id) |
760 | { | 750 | { |
761 | id = this.Core.CreateIdentifier("txt", text); | 751 | id = this.Core.CreateIdentifier("txt", text); |
@@ -1270,26 +1260,6 @@ namespace WixToolset.Core | |||
1270 | this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, iconSizeValue, "16", "32", "48")); | 1260 | this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, iconSizeValue, "16", "32", "48")); |
1271 | break; | 1261 | break; |
1272 | } | 1262 | } |
1273 | //if (0 < iconSizeValue.Length) | ||
1274 | //{ | ||
1275 | // var iconsSizeType = Wix.Control.ParseIconSizeType(iconSizeValue); | ||
1276 | // switch (iconsSizeType) | ||
1277 | // { | ||
1278 | // case Wix.Control.IconSizeType.Item16: | ||
1279 | // this.Core.TrySetBitFromName(specialAttributes, "Icon16", YesNoType.Yes, bits, 16); | ||
1280 | // break; | ||
1281 | // case Wix.Control.IconSizeType.Item32: | ||
1282 | // this.Core.TrySetBitFromName(specialAttributes, "Icon32", YesNoType.Yes, bits, 16); | ||
1283 | // break; | ||
1284 | // case Wix.Control.IconSizeType.Item48: | ||
1285 | // this.Core.TrySetBitFromName(specialAttributes, "Icon16", YesNoType.Yes, bits, 16); | ||
1286 | // this.Core.TrySetBitFromName(specialAttributes, "Icon32", YesNoType.Yes, bits, 16); | ||
1287 | // break; | ||
1288 | // default: | ||
1289 | // this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, iconSizeValue, "16", "32", "48")); | ||
1290 | // break; | ||
1291 | // } | ||
1292 | //} | ||
1293 | } | 1263 | } |
1294 | else | 1264 | else |
1295 | { | 1265 | { |
@@ -1411,9 +1381,6 @@ namespace WixToolset.Core | |||
1411 | case "ComboBox": | 1381 | case "ComboBox": |
1412 | this.ParseControlGroupElement(child, TupleDefinitionType.ComboBox, "ListItem"); | 1382 | this.ParseControlGroupElement(child, TupleDefinitionType.ComboBox, "ListItem"); |
1413 | break; | 1383 | break; |
1414 | case "Condition": | ||
1415 | this.ParseConditionElement(child, node.Name.LocalName, controlId.Id, dialog); | ||
1416 | break; | ||
1417 | case "ListBox": | 1384 | case "ListBox": |
1418 | this.ParseControlGroupElement(child, TupleDefinitionType.ListBox, "ListItem"); | 1385 | this.ParseControlGroupElement(child, TupleDefinitionType.ListBox, "ListItem"); |
1419 | break; | 1386 | break; |
@@ -1456,11 +1423,6 @@ namespace WixToolset.Core | |||
1456 | } | 1423 | } |
1457 | } | 1424 | } |
1458 | 1425 | ||
1459 | if (null == text) | ||
1460 | { | ||
1461 | text = Common.GetInnerText(child); | ||
1462 | } | ||
1463 | |||
1464 | if (!String.IsNullOrEmpty(text) && null != sourceFile) | 1426 | if (!String.IsNullOrEmpty(text) && null != sourceFile) |
1465 | { | 1427 | { |
1466 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(childSourceLineNumbers, child.Name.LocalName, "SourceFile", "Text")); | 1428 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(childSourceLineNumbers, child.Name.LocalName, "SourceFile", "Text")); |
@@ -1728,11 +1690,6 @@ namespace WixToolset.Core | |||
1728 | } | 1690 | } |
1729 | } | 1691 | } |
1730 | 1692 | ||
1731 | if (null == condition) | ||
1732 | { | ||
1733 | condition = this.Core.GetConditionInnerText(node); | ||
1734 | } | ||
1735 | |||
1736 | if (null == control) | 1693 | if (null == control) |
1737 | { | 1694 | { |
1738 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Control")); | 1695 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Control")); |
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleCustomTable/BundleCustomTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleCustomTable/BundleCustomTable.wxs index 8482a57e..db755171 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/BundleCustomTable/BundleCustomTable.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/BundleCustomTable/BundleCustomTable.wxs | |||
@@ -10,12 +10,12 @@ | |||
10 | <BundleAttributeDefinition Id="Column2" /> | 10 | <BundleAttributeDefinition Id="Column2" /> |
11 | 11 | ||
12 | <BundleElement> | 12 | <BundleElement> |
13 | <BundleAttribute Id="Id">one</BundleAttribute> | 13 | <BundleAttribute Id="Id" Value="one" /> |
14 | <BundleAttribute Id="Column2">two</BundleAttribute> | 14 | <BundleAttribute Id="Column2" Value="two" /> |
15 | </BundleElement> | 15 | </BundleElement> |
16 | <BundleElement> | 16 | <BundleElement> |
17 | <BundleAttribute Id="Column2"><</BundleAttribute> | 17 | <BundleAttribute Id="Column2" Value="<" /> |
18 | <BundleAttribute Id="Id">></BundleAttribute> | 18 | <BundleAttribute Id="Id" Value=">" /> |
19 | </BundleElement> | 19 | </BundleElement> |
20 | </BundleCustomData> | 20 | </BundleCustomData> |
21 | 21 | ||
@@ -28,23 +28,23 @@ | |||
28 | <Fragment> | 28 | <Fragment> |
29 | <BundleCustomDataRef Id="BundleCustomTableBA"> | 29 | <BundleCustomDataRef Id="BundleCustomTableBA"> |
30 | <BundleElement> | 30 | <BundleElement> |
31 | <BundleAttribute Id="Id">1</BundleAttribute> | 31 | <BundleAttribute Id="Id" Value="1" /> |
32 | <BundleAttribute Id="Column2">2</BundleAttribute> | 32 | <BundleAttribute Id="Column2" Value="2" /> |
33 | </BundleElement> | 33 | </BundleElement> |
34 | </BundleCustomDataRef> | 34 | </BundleCustomDataRef> |
35 | 35 | ||
36 | <BundleCustomDataRef Id="BundleCustomTableBE"> | 36 | <BundleCustomDataRef Id="BundleCustomTableBE"> |
37 | <BundleElement> | 37 | <BundleElement> |
38 | <BundleAttribute Id="Id">one</BundleAttribute> | 38 | <BundleAttribute Id="Id" Value="one" /> |
39 | <BundleAttribute Id="Column2">two</BundleAttribute> | 39 | <BundleAttribute Id="Column2" Value="two" /> |
40 | </BundleElement> | 40 | </BundleElement> |
41 | <BundleElement> | 41 | <BundleElement> |
42 | <BundleAttribute Id="Column2"><</BundleAttribute> | 42 | <BundleAttribute Id="Column2" Value="<" /> |
43 | <BundleAttribute Id="Id">></BundleAttribute> | 43 | <BundleAttribute Id="Id" Value=">" /> |
44 | </BundleElement> | 44 | </BundleElement> |
45 | <BundleElement> | 45 | <BundleElement> |
46 | <BundleAttribute Id="Id">1</BundleAttribute> | 46 | <BundleAttribute Id="Id" Value="1" /> |
47 | <BundleAttribute Id="Column2">2</BundleAttribute> | 47 | <BundleAttribute Id="Column2" Value="2" /> |
48 | </BundleElement> | 48 | </BundleElement> |
49 | </BundleCustomDataRef> | 49 | </BundleCustomDataRef> |
50 | 50 | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs index 2846d16e..0784824a 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs | |||
@@ -27,7 +27,7 @@ | |||
27 | </InstallUISequence> | 27 | </InstallUISequence> |
28 | 28 | ||
29 | <UI> | 29 | <UI> |
30 | <ProgressText Action="CustomAction2">Progess2Text</ProgressText> | 30 | <ProgressText Action="CustomAction2" Message="Progess2Text" /> |
31 | </UI> | 31 | </UI> |
32 | </Fragment> | 32 | </Fragment> |
33 | </Wix> | 33 | </Wix> |
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs index 51aee5f2..7f4a43e5 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs | |||
@@ -9,12 +9,12 @@ | |||
9 | <Column Id="Column1" Type="string" PrimaryKey="yes" Category="text" Modularize="column" Description="The first custom column." /> | 9 | <Column Id="Column1" Type="string" PrimaryKey="yes" Category="text" Modularize="column" Description="The first custom column." /> |
10 | <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Description="The custom table's Component reference" /> | 10 | <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Description="The custom table's Component reference" /> |
11 | <Row> | 11 | <Row> |
12 | <Data Column="Column1">Row1</Data> | 12 | <Data Column="Column1" Value="Row1" /> |
13 | <Data Column="Component_">test.txt</Data> | 13 | <Data Column="Component_" Value="test.txt" /> |
14 | </Row> | 14 | </Row> |
15 | <Row> | 15 | <Row> |
16 | <Data Column="Column1">Row2</Data> | 16 | <Data Column="Column1" Value="Row2" /> |
17 | <Data Column="Component_">test.txt</Data> | 17 | <Data Column="Component_" Value="test.txt" /> |
18 | </Row> | 18 | </Row> |
19 | </CustomTable> | 19 | </CustomTable> |
20 | 20 | ||
@@ -22,12 +22,12 @@ | |||
22 | <Column Id="ColumnA" Type="string" PrimaryKey="yes" /> | 22 | <Column Id="ColumnA" Type="string" PrimaryKey="yes" /> |
23 | <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" /> | 23 | <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" /> |
24 | <Row> | 24 | <Row> |
25 | <Data Column="ColumnA">RowA</Data> | 25 | <Data Column="ColumnA" Value="RowA" /> |
26 | <Data Column="Component_">test.txt</Data> | 26 | <Data Column="Component_" Value="test.txt" /> |
27 | </Row> | 27 | </Row> |
28 | <Row> | 28 | <Row> |
29 | <Data Column="ColumnA">RowB</Data> | 29 | <Data Column="ColumnA" Value="RowB" /> |
30 | <Data Column="Component_">test.txt</Data> | 30 | <Data Column="Component_" Value="test.txt" /> |
31 | </Row> | 31 | </Row> |
32 | </CustomTable> | 32 | </CustomTable> |
33 | </Fragment> | 33 | </Fragment> |
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs index ad5ed233..08a9c470 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs | |||
@@ -9,12 +9,12 @@ | |||
9 | <Column Id="Column1" Type="string" PrimaryKey="yes" /> | 9 | <Column Id="Column1" Type="string" PrimaryKey="yes" /> |
10 | <Column Id="Source" Type="binary" Width="0" /> | 10 | <Column Id="Source" Type="binary" Width="0" /> |
11 | <Row> | 11 | <Row> |
12 | <Data Column="Column1">Row1</Data> | 12 | <Data Column="Column1" Value="Row1" /> |
13 | <Data Column="Source">file1.txt</Data> | 13 | <Data Column="Source" Value="file1.txt" /> |
14 | </Row> | 14 | </Row> |
15 | <Row> | 15 | <Row> |
16 | <Data Column="Source">SourceDir\file2.txt</Data> | 16 | <Data Column="Source" Value="SourceDir\file2.txt" /> |
17 | <Data Column="Column1">Row2</Data> | 17 | <Data Column="Column1" Value="Row2" /> |
18 | </Row> | 18 | </Row> |
19 | </CustomTable> | 19 | </CustomTable> |
20 | 20 | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs index 1101d901..c6deb864 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs | |||
@@ -4,16 +4,13 @@ | |||
4 | <UI Id="CustomDialog"> | 4 | <UI Id="CustomDialog"> |
5 | <Dialog Id="FirstDialog" Width="100" Height="100"> | 5 | <Dialog Id="FirstDialog" Width="100" Height="100"> |
6 | <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="FirstDialogTitle" /> | 6 | <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="FirstDialogTitle" /> |
7 | <Control Id="Header" Type="Text" X="0" Y="13" Width="90" Height="13" TabSkip="no" Text="FirstDialogHeader"> | 7 | <Control Id="Header" Type="Text" X="0" Y="13" Width="90" Height="13" TabSkip="no" Text="FirstDialogHeader" |
8 | <Condition Action="hide">Installed</Condition> | 8 | HideCondition="Installed" DisableCondition="Installed" /> |
9 | <Condition Action="disable">Installed</Condition> | ||
10 | </Control> | ||
11 | </Dialog> | 9 | </Dialog> |
12 | <Dialog Id="SecondDialog" Width="100" Height="100"> | 10 | <Dialog Id="SecondDialog" Width="100" Height="100"> |
13 | <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="SecondDialogTitle" /> | 11 | <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="SecondDialogTitle" /> |
14 | <Control Id="OptionalCheckBox" Type="CheckBox" X="0" Y="13" Width="100" Height="40" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]"> | 12 | <Control Id="OptionalCheckBox" Type="CheckBox" X="0" Y="13" Width="100" Height="40" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]" |
15 | <Condition Action="show">WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed</Condition> | 13 | ShowCondition="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed" /> |
16 | </Control> | ||
17 | </Dialog> | 14 | </Dialog> |
18 | 15 | ||
19 | <InstallUISequence> | 16 | <InstallUISequence> |
@@ -29,8 +26,8 @@ | |||
29 | <Publish Dialog="FirstDialog" Control="Next" Event="NewDialog" Value="SecondDialog">Installed AND PATCH</Publish> | 26 | <Publish Dialog="FirstDialog" Control="Next" Event="NewDialog" Value="SecondDialog">Installed AND PATCH</Publish> |
30 | 27 | ||
31 | <InstallUISequence> | 28 | <InstallUISequence> |
32 | <Show Dialog="FirstDialog" Before="SecondDialog">Installed AND PATCH</Show> | 29 | <Show Dialog="FirstDialog" Before="SecondDialog" Condition="Installed AND PATCH" /> |
33 | <Show Dialog="SecondDialog" Before="ExecuteAction">NOT Installed</Show> | 30 | <Show Dialog="SecondDialog" Before="ExecuteAction" Condition="NOT Installed" /> |
34 | </InstallUISequence> | 31 | </InstallUISequence> |
35 | </UI> | 32 | </UI> |
36 | <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> | 33 | <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> |