diff options
author | Rob Mensching <rob@firegiant.com> | 2020-06-17 14:07:26 -0700 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2020-06-23 02:10:31 -0700 |
commit | 06e86dadb969ad1d337db11956814a1f79bbcd02 (patch) | |
tree | 897300b277c758a2e9bb6db223e7ccee40a583ee /src | |
parent | 099a5bc83bfde2a713a94d47e613dba16fdcee2a (diff) | |
download | wix-06e86dadb969ad1d337db11956814a1f79bbcd02.tar.gz wix-06e86dadb969ad1d337db11956814a1f79bbcd02.tar.bz2 wix-06e86dadb969ad1d337db11956814a1f79bbcd02.zip |
Moved more inner text to attribute
Diffstat (limited to 'src')
-rw-r--r-- | src/WixToolset.Core/Compiler_2.cs | 341 | ||||
-rw-r--r-- | src/WixToolset.Core/Compiler_EmbeddedUI.cs | 11 | ||||
-rw-r--r-- | src/WixToolset.Core/Compiler_UI.cs | 38 |
3 files changed, 253 insertions, 137 deletions
diff --git a/src/WixToolset.Core/Compiler_2.cs b/src/WixToolset.Core/Compiler_2.cs index 84961f9b..234c1ebc 100644 --- a/src/WixToolset.Core/Compiler_2.cs +++ b/src/WixToolset.Core/Compiler_2.cs | |||
@@ -2621,6 +2621,9 @@ namespace WixToolset.Core | |||
2621 | this.Core.UnexpectedAttribute(child, attrib); | 2621 | this.Core.UnexpectedAttribute(child, attrib); |
2622 | } | 2622 | } |
2623 | break; | 2623 | break; |
2624 | case "Condition": | ||
2625 | condition = this.Core.GetAttributeValue(childSourceLineNumbers, attrib); | ||
2626 | break; | ||
2624 | case "Dialog": | 2627 | case "Dialog": |
2625 | if (showDialog) | 2628 | if (showDialog) |
2626 | { | 2629 | { |
@@ -2678,7 +2681,10 @@ namespace WixToolset.Core | |||
2678 | } | 2681 | } |
2679 | 2682 | ||
2680 | // Get the condition from the inner text of the element. | 2683 | // Get the condition from the inner text of the element. |
2681 | condition = this.Core.GetConditionInnerText(child); | 2684 | if (condition == null) |
2685 | { | ||
2686 | condition = this.Core.GetConditionInnerText(child); | ||
2687 | } | ||
2682 | 2688 | ||
2683 | if (customAction && "Custom" == actionName) | 2689 | if (customAction && "Custom" == actionName) |
2684 | { | 2690 | { |
@@ -2901,128 +2907,7 @@ namespace WixToolset.Core | |||
2901 | switch (child.Name.LocalName) | 2907 | switch (child.Name.LocalName) |
2902 | { | 2908 | { |
2903 | case "RequiredPrivilege": | 2909 | case "RequiredPrivilege": |
2904 | var privilege = this.Core.GetTrimmedInnerText(child); | 2910 | requiredPrivileges = this.ParseRequiredPrivilege(child, requiredPrivileges); |
2905 | switch (privilege) | ||
2906 | { | ||
2907 | case "assignPrimaryToken": | ||
2908 | privilege = "SeAssignPrimaryTokenPrivilege"; | ||
2909 | break; | ||
2910 | case "audit": | ||
2911 | privilege = "SeAuditPrivilege"; | ||
2912 | break; | ||
2913 | case "backup": | ||
2914 | privilege = "SeBackupPrivilege"; | ||
2915 | break; | ||
2916 | case "changeNotify": | ||
2917 | privilege = "SeChangeNotifyPrivilege"; | ||
2918 | break; | ||
2919 | case "createGlobal": | ||
2920 | privilege = "SeCreateGlobalPrivilege"; | ||
2921 | break; | ||
2922 | case "createPagefile": | ||
2923 | privilege = "SeCreatePagefilePrivilege"; | ||
2924 | break; | ||
2925 | case "createPermanent": | ||
2926 | privilege = "SeCreatePermanentPrivilege"; | ||
2927 | break; | ||
2928 | case "createSymbolicLink": | ||
2929 | privilege = "SeCreateSymbolicLinkPrivilege"; | ||
2930 | break; | ||
2931 | case "createToken": | ||
2932 | privilege = "SeCreateTokenPrivilege"; | ||
2933 | break; | ||
2934 | case "debug": | ||
2935 | privilege = "SeDebugPrivilege"; | ||
2936 | break; | ||
2937 | case "enableDelegation": | ||
2938 | privilege = "SeEnableDelegationPrivilege"; | ||
2939 | break; | ||
2940 | case "impersonate": | ||
2941 | privilege = "SeImpersonatePrivilege"; | ||
2942 | break; | ||
2943 | case "increaseBasePriority": | ||
2944 | privilege = "SeIncreaseBasePriorityPrivilege"; | ||
2945 | break; | ||
2946 | case "increaseQuota": | ||
2947 | privilege = "SeIncreaseQuotaPrivilege"; | ||
2948 | break; | ||
2949 | case "increaseWorkingSet": | ||
2950 | privilege = "SeIncreaseWorkingSetPrivilege"; | ||
2951 | break; | ||
2952 | case "loadDriver": | ||
2953 | privilege = "SeLoadDriverPrivilege"; | ||
2954 | break; | ||
2955 | case "lockMemory": | ||
2956 | privilege = "SeLockMemoryPrivilege"; | ||
2957 | break; | ||
2958 | case "machineAccount": | ||
2959 | privilege = "SeMachineAccountPrivilege"; | ||
2960 | break; | ||
2961 | case "manageVolume": | ||
2962 | privilege = "SeManageVolumePrivilege"; | ||
2963 | break; | ||
2964 | case "profileSingleProcess": | ||
2965 | privilege = "SeProfileSingleProcessPrivilege"; | ||
2966 | break; | ||
2967 | case "relabel": | ||
2968 | privilege = "SeRelabelPrivilege"; | ||
2969 | break; | ||
2970 | case "remoteShutdown": | ||
2971 | privilege = "SeRemoteShutdownPrivilege"; | ||
2972 | break; | ||
2973 | case "restore": | ||
2974 | privilege = "SeRestorePrivilege"; | ||
2975 | break; | ||
2976 | case "security": | ||
2977 | privilege = "SeSecurityPrivilege"; | ||
2978 | break; | ||
2979 | case "shutdown": | ||
2980 | privilege = "SeShutdownPrivilege"; | ||
2981 | break; | ||
2982 | case "syncAgent": | ||
2983 | privilege = "SeSyncAgentPrivilege"; | ||
2984 | break; | ||
2985 | case "systemEnvironment": | ||
2986 | privilege = "SeSystemEnvironmentPrivilege"; | ||
2987 | break; | ||
2988 | case "systemProfile": | ||
2989 | privilege = "SeSystemProfilePrivilege"; | ||
2990 | break; | ||
2991 | case "systemTime": | ||
2992 | case "modifySystemTime": | ||
2993 | privilege = "SeSystemtimePrivilege"; | ||
2994 | break; | ||
2995 | case "takeOwnership": | ||
2996 | privilege = "SeTakeOwnershipPrivilege"; | ||
2997 | break; | ||
2998 | case "tcb": | ||
2999 | case "trustedComputerBase": | ||
3000 | privilege = "SeTcbPrivilege"; | ||
3001 | break; | ||
3002 | case "timeZone": | ||
3003 | case "modifyTimeZone": | ||
3004 | privilege = "SeTimeZonePrivilege"; | ||
3005 | break; | ||
3006 | case "trustedCredManAccess": | ||
3007 | case "trustedCredentialManagerAccess": | ||
3008 | privilege = "SeTrustedCredManAccessPrivilege"; | ||
3009 | break; | ||
3010 | case "undock": | ||
3011 | privilege = "SeUndockPrivilege"; | ||
3012 | break; | ||
3013 | case "unsolicitedInput": | ||
3014 | privilege = "SeUnsolicitedInputPrivilege"; | ||
3015 | break; | ||
3016 | default: | ||
3017 | // allow everything else to pass through that are hopefully "formatted" Properties. | ||
3018 | break; | ||
3019 | } | ||
3020 | |||
3021 | if (null != requiredPrivileges) | ||
3022 | { | ||
3023 | requiredPrivileges = String.Concat(requiredPrivileges, "[~]"); | ||
3024 | } | ||
3025 | requiredPrivileges = String.Concat(requiredPrivileges, privilege); | ||
3026 | break; | 2911 | break; |
3027 | default: | 2912 | default: |
3028 | this.Core.UnexpectedElement(node, child); | 2913 | this.Core.UnexpectedElement(node, child); |
@@ -3128,6 +3013,157 @@ namespace WixToolset.Core | |||
3128 | } | 3013 | } |
3129 | } | 3014 | } |
3130 | 3015 | ||
3016 | private string ParseRequiredPrivilege(XElement node, string requiredPrivileges) | ||
3017 | { | ||
3018 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | ||
3019 | string privilege = null; | ||
3020 | |||
3021 | foreach (var attrib in node.Attributes()) | ||
3022 | { | ||
3023 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || CompilerCore.WixNamespace == attrib.Name.Namespace) | ||
3024 | { | ||
3025 | switch (attrib.Name.LocalName) | ||
3026 | { | ||
3027 | case "Name": | ||
3028 | privilege = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
3029 | switch (privilege) | ||
3030 | { | ||
3031 | case "assignPrimaryToken": | ||
3032 | privilege = "SeAssignPrimaryTokenPrivilege"; | ||
3033 | break; | ||
3034 | case "audit": | ||
3035 | privilege = "SeAuditPrivilege"; | ||
3036 | break; | ||
3037 | case "backup": | ||
3038 | privilege = "SeBackupPrivilege"; | ||
3039 | break; | ||
3040 | case "changeNotify": | ||
3041 | privilege = "SeChangeNotifyPrivilege"; | ||
3042 | break; | ||
3043 | case "createGlobal": | ||
3044 | privilege = "SeCreateGlobalPrivilege"; | ||
3045 | break; | ||
3046 | case "createPagefile": | ||
3047 | privilege = "SeCreatePagefilePrivilege"; | ||
3048 | break; | ||
3049 | case "createPermanent": | ||
3050 | privilege = "SeCreatePermanentPrivilege"; | ||
3051 | break; | ||
3052 | case "createSymbolicLink": | ||
3053 | privilege = "SeCreateSymbolicLinkPrivilege"; | ||
3054 | break; | ||
3055 | case "createToken": | ||
3056 | privilege = "SeCreateTokenPrivilege"; | ||
3057 | break; | ||
3058 | case "debug": | ||
3059 | privilege = "SeDebugPrivilege"; | ||
3060 | break; | ||
3061 | case "enableDelegation": | ||
3062 | privilege = "SeEnableDelegationPrivilege"; | ||
3063 | break; | ||
3064 | case "impersonate": | ||
3065 | privilege = "SeImpersonatePrivilege"; | ||
3066 | break; | ||
3067 | case "increaseBasePriority": | ||
3068 | privilege = "SeIncreaseBasePriorityPrivilege"; | ||
3069 | break; | ||
3070 | case "increaseQuota": | ||
3071 | privilege = "SeIncreaseQuotaPrivilege"; | ||
3072 | break; | ||
3073 | case "increaseWorkingSet": | ||
3074 | privilege = "SeIncreaseWorkingSetPrivilege"; | ||
3075 | break; | ||
3076 | case "loadDriver": | ||
3077 | privilege = "SeLoadDriverPrivilege"; | ||
3078 | break; | ||
3079 | case "lockMemory": | ||
3080 | privilege = "SeLockMemoryPrivilege"; | ||
3081 | break; | ||
3082 | case "machineAccount": | ||
3083 | privilege = "SeMachineAccountPrivilege"; | ||
3084 | break; | ||
3085 | case "manageVolume": | ||
3086 | privilege = "SeManageVolumePrivilege"; | ||
3087 | break; | ||
3088 | case "profileSingleProcess": | ||
3089 | privilege = "SeProfileSingleProcessPrivilege"; | ||
3090 | break; | ||
3091 | case "relabel": | ||
3092 | privilege = "SeRelabelPrivilege"; | ||
3093 | break; | ||
3094 | case "remoteShutdown": | ||
3095 | privilege = "SeRemoteShutdownPrivilege"; | ||
3096 | break; | ||
3097 | case "restore": | ||
3098 | privilege = "SeRestorePrivilege"; | ||
3099 | break; | ||
3100 | case "security": | ||
3101 | privilege = "SeSecurityPrivilege"; | ||
3102 | break; | ||
3103 | case "shutdown": | ||
3104 | privilege = "SeShutdownPrivilege"; | ||
3105 | break; | ||
3106 | case "syncAgent": | ||
3107 | privilege = "SeSyncAgentPrivilege"; | ||
3108 | break; | ||
3109 | case "systemEnvironment": | ||
3110 | privilege = "SeSystemEnvironmentPrivilege"; | ||
3111 | break; | ||
3112 | case "systemProfile": | ||
3113 | privilege = "SeSystemProfilePrivilege"; | ||
3114 | break; | ||
3115 | case "systemTime": | ||
3116 | case "modifySystemTime": | ||
3117 | privilege = "SeSystemtimePrivilege"; | ||
3118 | break; | ||
3119 | case "takeOwnership": | ||
3120 | privilege = "SeTakeOwnershipPrivilege"; | ||
3121 | break; | ||
3122 | case "tcb": | ||
3123 | case "trustedComputerBase": | ||
3124 | privilege = "SeTcbPrivilege"; | ||
3125 | break; | ||
3126 | case "timeZone": | ||
3127 | case "modifyTimeZone": | ||
3128 | privilege = "SeTimeZonePrivilege"; | ||
3129 | break; | ||
3130 | case "trustedCredManAccess": | ||
3131 | case "trustedCredentialManagerAccess": | ||
3132 | privilege = "SeTrustedCredManAccessPrivilege"; | ||
3133 | break; | ||
3134 | case "undock": | ||
3135 | privilege = "SeUndockPrivilege"; | ||
3136 | break; | ||
3137 | case "unsolicitedInput": | ||
3138 | privilege = "SeUnsolicitedInputPrivilege"; | ||
3139 | break; | ||
3140 | default: | ||
3141 | // allow everything else to pass through that are hopefully "formatted" Properties. | ||
3142 | break; | ||
3143 | } | ||
3144 | break; | ||
3145 | default: | ||
3146 | this.Core.UnexpectedAttribute(node, attrib); | ||
3147 | break; | ||
3148 | } | ||
3149 | } | ||
3150 | } | ||
3151 | |||
3152 | if (privilege == null) | ||
3153 | { | ||
3154 | privilege = Common.GetInnerText(node); | ||
3155 | } | ||
3156 | |||
3157 | if (privilege == null) | ||
3158 | { | ||
3159 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Name")); | ||
3160 | } | ||
3161 | |||
3162 | this.Core.ParseForExtensionElements(node); | ||
3163 | |||
3164 | return (requiredPrivileges == null) ? privilege : String.Concat(requiredPrivileges, "[~]", privilege); | ||
3165 | } | ||
3166 | |||
3131 | /// <summary> | 3167 | /// <summary> |
3132 | /// Parses a service config failure actions element. | 3168 | /// Parses a service config failure actions element. |
3133 | /// </summary> | 3169 | /// </summary> |
@@ -3427,11 +3463,7 @@ namespace WixToolset.Core | |||
3427 | switch (child.Name.LocalName) | 3463 | switch (child.Name.LocalName) |
3428 | { | 3464 | { |
3429 | case "ServiceArgument": | 3465 | case "ServiceArgument": |
3430 | if (null != arguments) | 3466 | arguments = this.ParseServiceArgument(child, arguments); |
3431 | { | ||
3432 | arguments = String.Concat(arguments, "[~]"); | ||
3433 | } | ||
3434 | arguments = String.Concat(arguments, this.Core.GetTrimmedInnerText(child)); | ||
3435 | break; | 3467 | break; |
3436 | default: | 3468 | default: |
3437 | this.Core.UnexpectedElement(node, child); | 3469 | this.Core.UnexpectedElement(node, child); |
@@ -3462,6 +3494,42 @@ namespace WixToolset.Core | |||
3462 | } | 3494 | } |
3463 | } | 3495 | } |
3464 | 3496 | ||
3497 | private string ParseServiceArgument(XElement node, string arguments) | ||
3498 | { | ||
3499 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | ||
3500 | string argument = null; | ||
3501 | |||
3502 | foreach (var attrib in node.Attributes()) | ||
3503 | { | ||
3504 | if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || CompilerCore.WixNamespace == attrib.Name.Namespace) | ||
3505 | { | ||
3506 | switch (attrib.Name.LocalName) | ||
3507 | { | ||
3508 | case "Value": | ||
3509 | argument = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
3510 | break; | ||
3511 | default: | ||
3512 | this.Core.UnexpectedAttribute(node, attrib); | ||
3513 | break; | ||
3514 | } | ||
3515 | } | ||
3516 | } | ||
3517 | |||
3518 | if (argument == null) | ||
3519 | { | ||
3520 | argument = this.Core.GetTrimmedInnerText(node); | ||
3521 | } | ||
3522 | |||
3523 | if (argument == null) | ||
3524 | { | ||
3525 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value")); | ||
3526 | } | ||
3527 | |||
3528 | this.Core.ParseForExtensionElements(node); | ||
3529 | |||
3530 | return (arguments == null) ? argument : String.Concat(arguments, "[~]", argument); | ||
3531 | } | ||
3532 | |||
3465 | /// <summary> | 3533 | /// <summary> |
3466 | /// Parses a service dependency element. | 3534 | /// Parses a service dependency element. |
3467 | /// </summary> | 3535 | /// </summary> |
@@ -3746,6 +3814,9 @@ namespace WixToolset.Core | |||
3746 | case "Action": | 3814 | case "Action": |
3747 | actionName = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3815 | actionName = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
3748 | break; | 3816 | break; |
3817 | case "Condition": | ||
3818 | condition = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
3819 | break; | ||
3749 | case "Id": | 3820 | case "Id": |
3750 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3821 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
3751 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Directory, id); | 3822 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Directory, id); |
@@ -3786,7 +3857,10 @@ namespace WixToolset.Core | |||
3786 | } | 3857 | } |
3787 | } | 3858 | } |
3788 | 3859 | ||
3789 | condition = this.Core.GetConditionInnerText(node); | 3860 | if (condition == null) |
3861 | { | ||
3862 | condition = this.Core.GetConditionInnerText(node); | ||
3863 | } | ||
3790 | 3864 | ||
3791 | if (null == id) | 3865 | if (null == id) |
3792 | { | 3866 | { |
@@ -3831,6 +3905,7 @@ namespace WixToolset.Core | |||
3831 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | 3905 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); |
3832 | string actionName = null; | 3906 | string actionName = null; |
3833 | string id = null; | 3907 | string id = null; |
3908 | string condition = null; | ||
3834 | string afterAction = null; | 3909 | string afterAction = null; |
3835 | string beforeAction = null; | 3910 | string beforeAction = null; |
3836 | var executionType = CustomActionExecutionType.Immediate; | 3911 | var executionType = CustomActionExecutionType.Immediate; |
@@ -3849,6 +3924,9 @@ namespace WixToolset.Core | |||
3849 | case "Id": | 3924 | case "Id": |
3850 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3925 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
3851 | break; | 3926 | break; |
3927 | case "Condition": | ||
3928 | condition = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
3929 | break; | ||
3852 | case "After": | 3930 | case "After": |
3853 | afterAction = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3931 | afterAction = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
3854 | break; | 3932 | break; |
@@ -3914,7 +3992,10 @@ namespace WixToolset.Core | |||
3914 | } | 3992 | } |
3915 | } | 3993 | } |
3916 | 3994 | ||
3917 | var condition = this.Core.GetConditionInnerText(node); | 3995 | if (condition == null) |
3996 | { | ||
3997 | condition = this.Core.GetConditionInnerText(node); | ||
3998 | } | ||
3918 | 3999 | ||
3919 | if (null == id) | 4000 | if (null == id) |
3920 | { | 4001 | { |
diff --git a/src/WixToolset.Core/Compiler_EmbeddedUI.cs b/src/WixToolset.Core/Compiler_EmbeddedUI.cs index 706fe6e9..1827a200 100644 --- a/src/WixToolset.Core/Compiler_EmbeddedUI.cs +++ b/src/WixToolset.Core/Compiler_EmbeddedUI.cs | |||
@@ -23,6 +23,7 @@ namespace WixToolset.Core | |||
23 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | 23 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); |
24 | Identifier id = null; | 24 | Identifier id = null; |
25 | string commandLine = null; | 25 | string commandLine = null; |
26 | string condition = null; | ||
26 | string source = null; | 27 | string source = null; |
27 | var type = 0; | 28 | var type = 0; |
28 | 29 | ||
@@ -47,6 +48,9 @@ namespace WixToolset.Core | |||
47 | case "CommandLine": | 48 | case "CommandLine": |
48 | commandLine = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 49 | commandLine = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
49 | break; | 50 | break; |
51 | case "Condition": | ||
52 | condition = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
53 | break; | ||
50 | case "FileSource": | 54 | case "FileSource": |
51 | if (null != source) | 55 | if (null != source) |
52 | { | 56 | { |
@@ -76,8 +80,11 @@ namespace WixToolset.Core | |||
76 | } | 80 | } |
77 | } | 81 | } |
78 | 82 | ||
79 | // Get the condition from the inner text of the element. | 83 | if (condition == null) |
80 | var condition = this.Core.GetConditionInnerText(node); | 84 | { |
85 | // Get the condition from the inner text of the element. | ||
86 | condition = this.Core.GetConditionInnerText(node); | ||
87 | } | ||
81 | 88 | ||
82 | if (null == id) | 89 | if (null == id) |
83 | { | 90 | { |
diff --git a/src/WixToolset.Core/Compiler_UI.cs b/src/WixToolset.Core/Compiler_UI.cs index 19c2fdcc..0b5b3980 100644 --- a/src/WixToolset.Core/Compiler_UI.cs +++ b/src/WixToolset.Core/Compiler_UI.cs | |||
@@ -666,6 +666,7 @@ namespace WixToolset.Core | |||
666 | { | 666 | { |
667 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | 667 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); |
668 | string action = null; | 668 | string action = null; |
669 | string message = null; | ||
669 | string template = null; | 670 | string template = null; |
670 | 671 | ||
671 | foreach (var attrib in node.Attributes()) | 672 | foreach (var attrib in node.Attributes()) |
@@ -677,6 +678,9 @@ namespace WixToolset.Core | |||
677 | case "Action": | 678 | case "Action": |
678 | action = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 679 | action = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
679 | break; | 680 | break; |
681 | case "Message": | ||
682 | message = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
683 | break; | ||
680 | case "Template": | 684 | case "Template": |
681 | template = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 685 | template = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
682 | break; | 686 | break; |
@@ -696,6 +700,11 @@ namespace WixToolset.Core | |||
696 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Action")); | 700 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Action")); |
697 | } | 701 | } |
698 | 702 | ||
703 | if (null == message) | ||
704 | { | ||
705 | message = Common.GetInnerText(node); | ||
706 | } | ||
707 | |||
699 | this.Core.ParseForExtensionElements(node); | 708 | this.Core.ParseForExtensionElements(node); |
700 | 709 | ||
701 | if (!this.Core.EncounteredError) | 710 | if (!this.Core.EncounteredError) |
@@ -703,7 +712,7 @@ namespace WixToolset.Core | |||
703 | this.Core.AddTuple(new ActionTextTuple(sourceLineNumbers) | 712 | this.Core.AddTuple(new ActionTextTuple(sourceLineNumbers) |
704 | { | 713 | { |
705 | Action = action, | 714 | Action = action, |
706 | Description = Common.GetInnerText(node), | 715 | Description = message, |
707 | Template = template, | 716 | Template = template, |
708 | }); | 717 | }); |
709 | } | 718 | } |
@@ -728,6 +737,9 @@ namespace WixToolset.Core | |||
728 | case "Id": | 737 | case "Id": |
729 | id = this.Core.GetAttributeIdentifier(sourceLineNumbers, attrib); | 738 | id = this.Core.GetAttributeIdentifier(sourceLineNumbers, attrib); |
730 | break; | 739 | break; |
740 | case "Value": | ||
741 | text = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
742 | break; | ||
731 | default: | 743 | default: |
732 | this.Core.UnexpectedAttribute(node, attrib); | 744 | this.Core.UnexpectedAttribute(node, attrib); |
733 | break; | 745 | break; |
@@ -739,7 +751,10 @@ namespace WixToolset.Core | |||
739 | } | 751 | } |
740 | } | 752 | } |
741 | 753 | ||
742 | text = Common.GetInnerText(node); | 754 | if (null == text) |
755 | { | ||
756 | text = Common.GetInnerText(node); | ||
757 | } | ||
743 | 758 | ||
744 | if (null == id) | 759 | if (null == id) |
745 | { | 760 | { |
@@ -1406,6 +1421,9 @@ namespace WixToolset.Core | |||
1406 | case "SourceFile": | 1421 | case "SourceFile": |
1407 | sourceFile = this.Core.GetAttributeValue(childSourceLineNumbers, attrib); | 1422 | sourceFile = this.Core.GetAttributeValue(childSourceLineNumbers, attrib); |
1408 | break; | 1423 | break; |
1424 | case "Value": | ||
1425 | text = this.Core.GetAttributeValue(childSourceLineNumbers, attrib); | ||
1426 | break; | ||
1409 | default: | 1427 | default: |
1410 | this.Core.UnexpectedAttribute(child, attrib); | 1428 | this.Core.UnexpectedAttribute(child, attrib); |
1411 | break; | 1429 | break; |
@@ -1417,10 +1435,14 @@ namespace WixToolset.Core | |||
1417 | } | 1435 | } |
1418 | } | 1436 | } |
1419 | 1437 | ||
1420 | text = Common.GetInnerText(child); | 1438 | if (null == text) |
1439 | { | ||
1440 | text = Common.GetInnerText(child); | ||
1441 | } | ||
1442 | |||
1421 | if (!String.IsNullOrEmpty(text) && null != sourceFile) | 1443 | if (!String.IsNullOrEmpty(text) && null != sourceFile) |
1422 | { | 1444 | { |
1423 | this.Core.Write(ErrorMessages.IllegalAttributeWithInnerText(childSourceLineNumbers, child.Name.LocalName, "SourceFile")); | 1445 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(childSourceLineNumbers, child.Name.LocalName, "SourceFile", "Text")); |
1424 | } | 1446 | } |
1425 | break; | 1447 | break; |
1426 | default: | 1448 | default: |
@@ -1589,6 +1611,9 @@ namespace WixToolset.Core | |||
1589 | { | 1611 | { |
1590 | switch (attrib.Name.LocalName) | 1612 | switch (attrib.Name.LocalName) |
1591 | { | 1613 | { |
1614 | case "Condition": | ||
1615 | condition = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | ||
1616 | break; | ||
1592 | case "Control": | 1617 | case "Control": |
1593 | if (null != control) | 1618 | if (null != control) |
1594 | { | 1619 | { |
@@ -1627,7 +1652,10 @@ namespace WixToolset.Core | |||
1627 | } | 1652 | } |
1628 | } | 1653 | } |
1629 | 1654 | ||
1630 | condition = this.Core.GetConditionInnerText(node); | 1655 | if (null == condition) |
1656 | { | ||
1657 | condition = this.Core.GetConditionInnerText(node); | ||
1658 | } | ||
1631 | 1659 | ||
1632 | if (null == control) | 1660 | if (null == control) |
1633 | { | 1661 | { |