aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs')
-rw-r--r--src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs15
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 {