Add error message when tuple can't be found.
Bob Arnson committed
Jun 10, 2020 at 21:38 UTC
9ebc094931aa473136c56c095a1170948f481f2e
3 files changed
+13
-2
src/WixToolset.Data/ErrorMessages.cs
+6
@@ -2279,6 +2279,11 @@ namespace WixToolset.Data
2279
return Message(null, Ids.IntermediatesMustBeResolved, "Intermediates being bound must have been resolved. This intermediate was not resolved: {0}", invalidIntermediate);
2280
}
2281
2282
+ public static Message UnknownSymbolType(string symbolName)
2283
+ {
2284
+ return Message(null, Ids.UnknownSymbolType, "Could not deserialize symbol of type type '{0}' because it is not a standard symbol type or one provided by a loaded extension.", symbolName);
2285
+ }
2286
+
2287
private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args)
2288
{
2289
return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args);
@@ -2680,6 +2685,7 @@ namespace WixToolset.Data
2685
IntermediatesMustBeResolved = 396,
2686
MissingBundleSearch = 397,
2687
CircularSearchReference = 398,
2688
+ UnknownSymbolType = 399,
2689
}
2690
}
2691
}
src/WixToolset.Data/IntermediateTuple.cs
+6
-1
@@ -165,7 +165,12 @@ namespace WixToolset.Data
165
var id = (idJson == null) ? null : Identifier.Deserialize(idJson);
166
var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson);
167
168
- creator.TryGetTupleDefinitionByName(definitionName, out var definition); // TODO: this isn't sufficient.
168
+ // TODO: this isn't sufficient.
169
+ if (!creator.TryGetTupleDefinitionByName(definitionName, out var definition))
170
+ {
171
+ throw new WixException(ErrorMessages.UnknownSymbolType(definitionName));
172
+ }
173
+
174
var tuple = definition.CreateTuple(sourceLineNumbers, id);
175
176
for (var i = 0; i < fieldsJson.Count && i < tuple.Fields.Length; ++i)
src/WixToolset.Data/WarningMessages.cs
+1
-1
@@ -504,7 +504,7 @@ namespace WixToolset.Data
504
505
public static Message RequiresMsi500forArmPackage(SourceLineNumber sourceLineNumbers)
506
{
507
- return Message(sourceLineNumbers, Ids.RequiresMsi500forArmPackage, "Package/@InstallerVersion must be 500 or greater for an Arm package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning.");
507
+ return Message(sourceLineNumbers, Ids.RequiresMsi500forArmPackage, "Package/@InstallerVersion must be 500 or greater for an ARM or ARM64 package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning.");
508
}
509
510
public static Message ReservedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName)