aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2023-05-15 21:05:50 -0400
committerRob Mensching <rob@firegiant.com>2023-06-03 01:24:39 -0700
commit1da042fc5f6cef4ea3cce10bd8a151f3a3d115cd (patch)
tree17eb715c5b2a728d4e85bd47004d6387ae03ccde
parent5ddb81c8bb79687c19a24d96ec85b09c63fd9274 (diff)
downloadwix-1da042fc5f6cef4ea3cce10bd8a151f3a3d115cd.tar.gz
wix-1da042fc5f6cef4ea3cce10bd8a151f3a3d115cd.tar.bz2
wix-1da042fc5f6cef4ea3cce10bd8a151f3a3d115cd.zip
Skip processing missing FeatureComponents table.
Fixes https://github.com/wixtoolset/issues/issues/7472.
-rw-r--r--src/wix/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs2
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs28
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/Bundle.en-us.wxl11
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/Bundle.wxs12
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/MsiPackage/Shared.dll1
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/MsiPackage/test.txt1
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/fakeba.dll1
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/test.msibin0 -> 32768 bytes
8 files changed, 55 insertions, 1 deletions
diff --git a/src/wix/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs b/src/wix/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
index 71e0d7de..d6cf1cfd 100644
--- a/src/wix/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
+++ b/src/wix/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
@@ -379,7 +379,7 @@ namespace WixToolset.Core.Burn.Bundles
379 379
380 private void CreateMsiFeatures(Database db) 380 private void CreateMsiFeatures(Database db)
381 { 381 {
382 if (db.TableExists("Feature")) 382 if (db.TableExists("Feature") && db.TableExists("FeatureComponents"))
383 { 383 {
384 using (var allFeaturesView = db.OpenExecuteView("SELECT * FROM `Feature`")) 384 using (var allFeaturesView = db.OpenExecuteView("SELECT * FROM `Feature`"))
385 using (var featureView = db.OpenView("SELECT `Component_` FROM `FeatureComponents` WHERE `Feature_` = ?")) 385 using (var featureView = db.OpenView("SELECT `Component_` FROM `FeatureComponents` WHERE `Feature_` = ?"))
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
index 5c51ecdb..5bcd1f49 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
@@ -811,5 +811,33 @@ namespace WixToolsetTest.CoreIntegration
811 Assert.False(true, "Expected exception not accepted."); 811 Assert.False(true, "Expected exception not accepted.");
812 } 812 }
813 } 813 }
814
815 [Fact]
816 public void CanBuildBundleWithMsiPackageWithoutComponents()
817 {
818 var folder = TestData.Get(@"TestData\BundleWithComponentlessPackage");
819
820 using (var fs = new DisposableFileSystem())
821 {
822 var baseFolder = fs.GetFolder();
823 var intermediateFolder = Path.Combine(baseFolder, "obj");
824
825 var result = WixRunner.Execute(new[]
826 {
827 "build",
828 Path.Combine(folder, "Bundle.wxs"),
829 "-loc", Path.Combine(folder, "Bundle.en-us.wxl"),
830 "-bindpath", Path.Combine(folder, "data"),
831 "-intermediateFolder", intermediateFolder,
832 "-o", Path.Combine(baseFolder, @"bin\test.exe")
833 });
834
835 result.AssertSuccess();
836
837 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.exe")));
838 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
839 }
840 }
841
814 } 842 }
815} 843}
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/Bundle.en-us.wxl b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/Bundle.en-us.wxl
new file mode 100644
index 00000000..23cf236c
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/Bundle.en-us.wxl
@@ -0,0 +1,11 @@
1<?xml version="1.0" encoding="utf-8"?>
2
3<!--
4This file contains the declaration of all the localizable strings.
5-->
6<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
7
8 <String Id="BundleName" Value="~TestBundle" />
9 <String Id="BundleInProgressName" Value="~InProgressTestBundle" />
10
11</WixLocalization>
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/Bundle.wxs b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/Bundle.wxs
new file mode 100644
index 00000000..01b9e716
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/Bundle.wxs
@@ -0,0 +1,12 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Bundle Name="!(loc.BundleName)" InProgressName="!(loc.BundleInProgressName)" Version="!(bind.packageVersion.test.msi)" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 <BootstrapperApplication>
4 <BootstrapperApplicationDll SourceFile="fakeba.dll" />
5 </BootstrapperApplication>
6 <Chain>
7 <MsiPackage SourceFile="test.msi">
8 <MsiProperty Name="TEST" Value="1" />
9 </MsiPackage>
10 </Chain>
11 </Bundle>
12</Wix>
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/MsiPackage/Shared.dll b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/MsiPackage/Shared.dll
new file mode 100644
index 00000000..0e461ba8
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/MsiPackage/Shared.dll
@@ -0,0 +1 @@
This is Shared.dll. \ No newline at end of file
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/MsiPackage/test.txt b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/MsiPackage/test.txt
new file mode 100644
index 00000000..8b986220
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/MsiPackage/test.txt
@@ -0,0 +1 @@
This is test.txt \ No newline at end of file
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/fakeba.dll b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/fakeba.dll
new file mode 100644
index 00000000..970efdf0
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/fakeba.dll
@@ -0,0 +1 @@
This is a fakeba.dll \ No newline at end of file
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/test.msi b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/test.msi
new file mode 100644
index 00000000..e773f104
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/BundleWithComponentlessPackage/data/test.msi
Binary files differ