aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/Bind/ResolveFieldsCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core/Bind/ResolveFieldsCommand.cs')
-rw-r--r--src/WixToolset.Core/Bind/ResolveFieldsCommand.cs17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/WixToolset.Core/Bind/ResolveFieldsCommand.cs b/src/WixToolset.Core/Bind/ResolveFieldsCommand.cs
index e8c90956..824eb9a5 100644
--- a/src/WixToolset.Core/Bind/ResolveFieldsCommand.cs
+++ b/src/WixToolset.Core/Bind/ResolveFieldsCommand.cs
@@ -22,7 +22,7 @@ namespace WixToolset.Core.Bind
22 22
23 public IEnumerable<BindPath> BindPaths { private get; set; } 23 public IEnumerable<BindPath> BindPaths { private get; set; }
24 24
25 public IEnumerable<IBinderExtension> Extensions { private get; set; } 25 public IEnumerable<IResolverExtension> Extensions { private get; set; }
26 26
27 public ExtractEmbeddedFiles FilesWithEmbeddedFiles { private get; set; } 27 public ExtractEmbeddedFiles FilesWithEmbeddedFiles { private get; set; }
28 28
@@ -52,7 +52,6 @@ namespace WixToolset.Core.Bind
52 } 52 }
53 53
54 var isDefault = true; 54 var isDefault = true;
55 var delayedResolve = false;
56 55
57 // Check to make sure we're in a scenario where we can handle variable resolution. 56 // Check to make sure we're in a scenario where we can handle variable resolution.
58 if (null != delayedFields) 57 if (null != delayedFields)
@@ -63,16 +62,18 @@ namespace WixToolset.Core.Bind
63 var original = field.AsString(); 62 var original = field.AsString();
64 if (!String.IsNullOrEmpty(original)) 63 if (!String.IsNullOrEmpty(original))
65 { 64 {
66 var value = this.BindVariableResolver.ResolveVariables(row.SourceLineNumbers, original, false, out isDefault, out delayedResolve); 65 var resolution = this.BindVariableResolver.ResolveVariables(row.SourceLineNumbers, original, false);
67 if (original != value) 66 if (resolution.UpdatedValue)
68 { 67 {
69 field.Set(value); 68 field.Set(resolution.Value);
70 } 69 }
71 70
72 if (delayedResolve) 71 if (resolution.DelayedResolve)
73 { 72 {
74 delayedFields.Add(new DelayedField(row, field)); 73 delayedFields.Add(new DelayedField(row, field));
75 } 74 }
75
76 isDefault = resolution.IsDefault;
76 } 77 }
77 } 78 }
78 } 79 }
@@ -119,13 +120,13 @@ namespace WixToolset.Core.Bind
119#endif 120#endif
120 121
121 // resolve the path to the file 122 // resolve the path to the file
122 var value = fileResolver.ResolveFile(objectField.Path, row.Definition.Name, row.SourceLineNumbers, BindStage.Normal); 123 var value = fileResolver.ResolveFile(objectField.Path, row.Definition, row.SourceLineNumbers, BindStage.Normal);
123 field.Set(value); 124 field.Set(value);
124 } 125 }
125 else if (!fileResolver.RebaseTarget && !fileResolver.RebaseUpdated) // Normal binding for Patch Scenario (normal patch, no re-basing logic) 126 else if (!fileResolver.RebaseTarget && !fileResolver.RebaseUpdated) // Normal binding for Patch Scenario (normal patch, no re-basing logic)
126 { 127 {
127 // resolve the path to the file 128 // resolve the path to the file
128 var value = fileResolver.ResolveFile(objectField.Path, row.Definition.Name, row.SourceLineNumbers, BindStage.Normal); 129 var value = fileResolver.ResolveFile(objectField.Path, row.Definition, row.SourceLineNumbers, BindStage.Normal);
129 field.Set(value); 130 field.Set(value);
130 } 131 }
131#if REVISIT_FOR_PATCHING 132#if REVISIT_FOR_PATCHING