From 9ebc094931aa473136c56c095a1170948f481f2e Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Wed, 10 Jun 2020 21:38:18 -0400 Subject: Add error message when tuple can't be found. --- src/WixToolset.Data/ErrorMessages.cs | 6 ++++++ src/WixToolset.Data/IntermediateTuple.cs | 7 ++++++- src/WixToolset.Data/WarningMessages.cs | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index cb8d5f8f..d0736628 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -2279,6 +2279,11 @@ namespace WixToolset.Data return Message(null, Ids.IntermediatesMustBeResolved, "Intermediates being bound must have been resolved. This intermediate was not resolved: {0}", invalidIntermediate); } + public static Message UnknownSymbolType(string symbolName) + { + 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); + } + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) { return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); @@ -2680,6 +2685,7 @@ namespace WixToolset.Data IntermediatesMustBeResolved = 396, MissingBundleSearch = 397, CircularSearchReference = 398, + UnknownSymbolType = 399, } } } diff --git a/src/WixToolset.Data/IntermediateTuple.cs b/src/WixToolset.Data/IntermediateTuple.cs index 8a5858ee..9146b2be 100644 --- a/src/WixToolset.Data/IntermediateTuple.cs +++ b/src/WixToolset.Data/IntermediateTuple.cs @@ -165,7 +165,12 @@ namespace WixToolset.Data var id = (idJson == null) ? null : Identifier.Deserialize(idJson); var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson); - creator.TryGetTupleDefinitionByName(definitionName, out var definition); // TODO: this isn't sufficient. + // TODO: this isn't sufficient. + if (!creator.TryGetTupleDefinitionByName(definitionName, out var definition)) + { + throw new WixException(ErrorMessages.UnknownSymbolType(definitionName)); + } + var tuple = definition.CreateTuple(sourceLineNumbers, id); for (var i = 0; i < fieldsJson.Count && i < tuple.Fields.Length; ++i) diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 55bf2c2c..b31f5aaf 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -504,7 +504,7 @@ namespace WixToolset.Data public static Message RequiresMsi500forArmPackage(SourceLineNumber sourceLineNumbers) { - 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."); + 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."); } public static Message ReservedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) -- cgit v1.2.3-55-g6feb