diff options
Diffstat (limited to 'src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs')
-rw-r--r-- | src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs b/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs index 15365c2a..d05135cf 100644 --- a/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs +++ b/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs | |||
@@ -34,19 +34,19 @@ namespace WixToolset.Core.Bind | |||
34 | { | 34 | { |
35 | try | 35 | try |
36 | { | 36 | { |
37 | Row propertyRow = delayedField.Row; | 37 | var propertyRow = delayedField.Row; |
38 | 38 | ||
39 | // process properties first in case they refer to other binder variables | 39 | // process properties first in case they refer to other binder variables |
40 | if ("Property" == propertyRow.Table.Name) | 40 | if (delayedField.Row.Definition.Type == TupleDefinitionType.Property) |
41 | { | 41 | { |
42 | string value = WixVariableResolver.ResolveDelayedVariables(propertyRow.SourceLineNumbers, (string)delayedField.Field.Data, this.VariableCache); | 42 | var value = WixVariableResolver.ResolveDelayedVariables(propertyRow.SourceLineNumbers, delayedField.Field.AsString(), this.VariableCache); |
43 | 43 | ||
44 | // update the variable cache with the new value | 44 | // update the variable cache with the new value |
45 | string key = String.Concat("property.", Common.Demodularize(this.OutputType, this.ModularizationGuid, (string)propertyRow[0])); | 45 | var key = String.Concat("property.", Common.Demodularize(this.OutputType, this.ModularizationGuid, (string)propertyRow[0])); |
46 | this.VariableCache[key] = value; | 46 | this.VariableCache[key] = value; |
47 | 47 | ||
48 | // update the field data | 48 | // update the field data |
49 | delayedField.Field.Data = value; | 49 | delayedField.Field.Set(value); |
50 | } | 50 | } |
51 | else | 51 | else |
52 | { | 52 | { |
@@ -103,11 +103,12 @@ namespace WixToolset.Core.Bind | |||
103 | } | 103 | } |
104 | 104 | ||
105 | // process the remaining fields in case they refer to property binder variables | 105 | // process the remaining fields in case they refer to property binder variables |
106 | foreach (DelayedField delayedField in deferredFields) | 106 | foreach (var delayedField in deferredFields) |
107 | { | 107 | { |
108 | try | 108 | try |
109 | { | 109 | { |
110 | delayedField.Field.Data = WixVariableResolver.ResolveDelayedVariables(delayedField.Row.SourceLineNumbers, (string)delayedField.Field.Data, this.VariableCache); | 110 | var value = WixVariableResolver.ResolveDelayedVariables(delayedField.Row.SourceLineNumbers, delayedField.Field.AsString(), this.VariableCache); |
111 | delayedField.Field.Set(value); | ||
111 | } | 112 | } |
112 | catch (WixException we) | 113 | catch (WixException we) |
113 | { | 114 | { |