aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2019-11-05 22:33:33 -0800
committerRob Mensching <rob@firegiant.com>2019-11-05 22:39:16 -0800
commit97a70bbc1b90cb26f8c77d83e703689d15d08761 (patch)
treec4d05ae10cb907f522c1df476cb1d5df7604cd14 /src
parent0f65aaaca2faf1b6fc233c445216d547f08c6fa5 (diff)
downloadwix-97a70bbc1b90cb26f8c77d83e703689d15d08761.tar.gz
wix-97a70bbc1b90cb26f8c77d83e703689d15d08761.tar.bz2
wix-97a70bbc1b90cb26f8c77d83e703689d15d08761.zip
Fix resolution of !(bind.ProductVersion.MsiId) bind variables
Fixes wixtoolset/issues#4830
Diffstat (limited to 'src')
-rw-r--r--src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs5
-rw-r--r--src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs6
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs2
4 files changed, 15 insertions, 5 deletions
diff --git a/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs b/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
index 5fcf172f..7e65a9cf 100644
--- a/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
+++ b/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
@@ -135,6 +135,11 @@ namespace WixToolset.Core.Burn.Bundles
135 this.Facade.PackageTuple.Description = ProcessMsiPackageCommand.GetProperty(db, "ARPCOMMENTS"); 135 this.Facade.PackageTuple.Description = ProcessMsiPackageCommand.GetProperty(db, "ARPCOMMENTS");
136 } 136 }
137 137
138 if (String.IsNullOrEmpty(this.Facade.PackageTuple.Version))
139 {
140 this.Facade.PackageTuple.Version = msiPackage.ProductVersion;
141 }
142
138 var payloadNames = this.GetPayloadTargetNames(packagePayload.Id.Id); 143 var payloadNames = this.GetPayloadTargetNames(packagePayload.Id.Id);
139 144
140 var msiPropertyNames = this.GetMsiPropertyNames(packagePayload.Id.Id); 145 var msiPropertyNames = this.GetMsiPropertyNames(packagePayload.Id.Id);
diff --git a/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs b/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs
index 22710aca..be0e4578 100644
--- a/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs
+++ b/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs
@@ -153,12 +153,11 @@ namespace WixToolset.Core.Bind
153 } 153 }
154 else 154 else
155 { 155 {
156 string key = String.Format(CultureInfo.InvariantCulture, "{0}.{1}", variableId, variableScope).ToLower(CultureInfo.InvariantCulture); 156 var key = String.Format(CultureInfo.InvariantCulture, "{0}.{1}", variableId, variableScope).ToLower(CultureInfo.InvariantCulture);
157 string resolvedValue = variableDefaultValue;
158 157
159 if (resolutionData.ContainsKey(key)) 158 if (!resolutionData.TryGetValue(key, out var resolvedValue))
160 { 159 {
161 resolvedValue = resolutionData[key]; 160 resolvedValue = variableDefaultValue;
162 } 161 }
163 162
164 if ("bind" == variableNamespace) 163 if ("bind" == variableNamespace)
diff --git a/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
index 554f4b17..f32208a4 100644
--- a/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
@@ -44,6 +44,12 @@ namespace WixToolsetTest.CoreIntegration
44 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"test.wir")); 44 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"test.wir"));
45 var section = intermediate.Sections.Single(); 45 var section = intermediate.Sections.Single();
46 46
47 var bundleTuple = section.Tuples.OfType<WixBundleTuple>().Single();
48 Assert.Equal("1.0.0.0", bundleTuple.Version);
49
50 var previousVersion = bundleTuple.Fields[(int)WixBundleTupleFields.Version].PreviousValue;
51 Assert.Equal("!(bind.packageVersion.test.msi)", previousVersion.AsString());
52
47 var msiTuple = section.Tuples.OfType<WixBundlePackageTuple>().Single(); 53 var msiTuple = section.Tuples.OfType<WixBundlePackageTuple>().Single();
48 Assert.Equal("test.msi", msiTuple.Id.Id ); 54 Assert.Equal("test.msi", msiTuple.Id.Id );
49 } 55 }
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs
index 89dbb503..7ef1fc05 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Bundle Name="!(loc.BundleName)" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 3 <Bundle Name="!(loc.BundleName)" Version="!(bind.packageVersion.test.msi)" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
4 <BootstrapperApplication SourceFile="fakeba.dll" /> 4 <BootstrapperApplication SourceFile="fakeba.dll" />
5 <Chain> 5 <Chain>
6 <MsiPackage SourceFile="test.msi"> 6 <MsiPackage SourceFile="test.msi">