diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-07-21 15:45:16 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-07-21 17:06:01 -0500 |
commit | 0fcd544b7d2fbdf37227df055122b17428d9a524 (patch) | |
tree | 02edc0006c8f11ce960174c562e9e9c0f63ccfdf /src/api | |
parent | 913b6238417dceeb8440315e4669990756d17655 (diff) | |
download | wix-0fcd544b7d2fbdf37227df055122b17428d9a524.tar.gz wix-0fcd544b7d2fbdf37227df055122b17428d9a524.tar.bz2 wix-0fcd544b7d2fbdf37227df055122b17428d9a524.zip |
Expose and use methods to parse attributes with Burn variable names.
Fixes 6819
Diffstat (limited to 'src/api')
4 files changed, 40 insertions, 1 deletions
diff --git a/src/api/wix/WixToolset.Data/ErrorMessages.cs b/src/api/wix/WixToolset.Data/ErrorMessages.cs index c28812f7..4826e7c9 100644 --- a/src/api/wix/WixToolset.Data/ErrorMessages.cs +++ b/src/api/wix/WixToolset.Data/ErrorMessages.cs | |||
@@ -1804,6 +1804,11 @@ namespace WixToolset.Data | |||
1804 | return Message(sourceLineNumbers, Ids.RelativePathForRegistryElement, "Cannot convert RelativePath into Registry elements."); | 1804 | return Message(sourceLineNumbers, Ids.RelativePathForRegistryElement, "Cannot convert RelativePath into Registry elements."); |
1805 | } | 1805 | } |
1806 | 1806 | ||
1807 | public static Message ReservedBurnNamespaceViolation(SourceLineNumber sourceLineNumbers, string element, string attribute, string prefix) | ||
1808 | { | ||
1809 | return Message(sourceLineNumbers, Ids.ReservedNamespaceViolation, "The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix.", element, attribute, prefix); | ||
1810 | } | ||
1811 | |||
1807 | public static Message ReservedNamespaceViolation(SourceLineNumber sourceLineNumbers, string element, string attribute, string prefix) | 1812 | public static Message ReservedNamespaceViolation(SourceLineNumber sourceLineNumbers, string element, string attribute, string prefix) |
1808 | { | 1813 | { |
1809 | return Message(sourceLineNumbers, Ids.ReservedNamespaceViolation, "The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the Windows Installer and WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix.", element, attribute, prefix); | 1814 | return Message(sourceLineNumbers, Ids.ReservedNamespaceViolation, "The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the Windows Installer and WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix.", element, attribute, prefix); |
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs index b8a1923d..ea49da8d 100644 --- a/src/api/wix/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs | |||
@@ -35,6 +35,7 @@ namespace WixToolset.Data.Symbols | |||
35 | None = 0x0, | 35 | None = 0x0, |
36 | Hidden = 0x1, | 36 | Hidden = 0x1, |
37 | Persisted = 0x2, | 37 | Persisted = 0x2, |
38 | BuiltIn = 0x4, | ||
38 | } | 39 | } |
39 | 40 | ||
40 | public enum WixBundleVariableType | 41 | public enum WixBundleVariableType |
@@ -107,5 +108,21 @@ namespace WixToolset.Data.Symbols | |||
107 | } | 108 | } |
108 | } | 109 | } |
109 | } | 110 | } |
111 | |||
112 | public bool BuiltIn | ||
113 | { | ||
114 | get { return this.Attributes.HasFlag(WixBundleVariableAttributes.BuiltIn); } | ||
115 | set | ||
116 | { | ||
117 | if (value) | ||
118 | { | ||
119 | this.Attributes |= WixBundleVariableAttributes.BuiltIn; | ||
120 | } | ||
121 | else | ||
122 | { | ||
123 | this.Attributes &= ~WixBundleVariableAttributes.BuiltIn; | ||
124 | } | ||
125 | } | ||
126 | } | ||
110 | } | 127 | } |
111 | } | 128 | } |
diff --git a/src/api/wix/WixToolset.Extensibility/Services/IBundleValidator.cs b/src/api/wix/WixToolset.Extensibility/Services/IBundleValidator.cs index fc88a443..43f65fc8 100644 --- a/src/api/wix/WixToolset.Extensibility/Services/IBundleValidator.cs +++ b/src/api/wix/WixToolset.Extensibility/Services/IBundleValidator.cs | |||
@@ -39,8 +39,9 @@ namespace WixToolset.Extensibility.Services | |||
39 | /// <param name="elementName"></param> | 39 | /// <param name="elementName"></param> |
40 | /// <param name="attributeName"></param> | 40 | /// <param name="attributeName"></param> |
41 | /// <param name="variableName"></param> | 41 | /// <param name="variableName"></param> |
42 | /// <param name="allowBuiltIn">Whether to bypass checks for reserved values.</param> | ||
42 | /// <returns>Whether the name is valid.</returns> | 43 | /// <returns>Whether the name is valid.</returns> |
43 | bool ValidateBundleVariableName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string variableName); | 44 | bool ValidateBundleVariableName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string variableName, bool allowBuiltIn); |
44 | 45 | ||
45 | /// <summary> | 46 | /// <summary> |
46 | /// Validates a bundle condition and displays an error for an illegal value. | 47 | /// Validates a bundle condition and displays an error for an illegal value. |
diff --git a/src/api/wix/WixToolset.Extensibility/Services/IParseHelper.cs b/src/api/wix/WixToolset.Extensibility/Services/IParseHelper.cs index 546a43a7..a8246b9b 100644 --- a/src/api/wix/WixToolset.Extensibility/Services/IParseHelper.cs +++ b/src/api/wix/WixToolset.Extensibility/Services/IParseHelper.cs | |||
@@ -234,6 +234,22 @@ namespace WixToolset.Extensibility.Services | |||
234 | string GetAttributeValue(SourceLineNumber sourceLineNumbers, XAttribute attribute, EmptyRule emptyRule = EmptyRule.CanBeWhitespaceOnly); | 234 | string GetAttributeValue(SourceLineNumber sourceLineNumbers, XAttribute attribute, EmptyRule emptyRule = EmptyRule.CanBeWhitespaceOnly); |
235 | 235 | ||
236 | /// <summary> | 236 | /// <summary> |
237 | /// Gets a bundle variable name identifier and displays an error for an illegal value. | ||
238 | /// </summary> | ||
239 | /// <param name="sourceLineNumbers">Source line information about the owner element.</param> | ||
240 | /// <param name="attribute">The attribute containing the value to get.</param> | ||
241 | /// <returns>The attribute's identifier value or a special value if an error occurred.</returns> | ||
242 | Identifier GetAttributeBundleVariableNameIdentifier(SourceLineNumber sourceLineNumbers, XAttribute attribute); | ||
243 | |||
244 | /// <summary> | ||
245 | /// Gets a bundle variable name value and displays an error for an illegal value. | ||
246 | /// </summary> | ||
247 | /// <param name="sourceLineNumbers">Source line information about the owner element.</param> | ||
248 | /// <param name="attribute">The attribute containing the value to get.</param> | ||
249 | /// <returns>The attribute's value.</returns> | ||
250 | string GetAttributeBundleVariableNameValue(SourceLineNumber sourceLineNumbers, XAttribute attribute); | ||
251 | |||
252 | /// <summary> | ||
237 | /// Get a guid attribute value and displays an error for an illegal guid value. | 253 | /// Get a guid attribute value and displays an error for an illegal guid value. |
238 | /// </summary> | 254 | /// </summary> |
239 | /// <param name="sourceLineNumbers">Source line information about the owner element.</param> | 255 | /// <param name="sourceLineNumbers">Source line information about the owner element.</param> |