From 05edba00dc08b74a6d9b32b4e56f4da6ef90c638 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 23 Apr 2020 12:11:30 +1000 Subject: Update BalBurnBackendExtension to use BundleFinalize. --- src/test/WixToolsetTest.Bal/BalExtensionFixture.cs | 28 ++++++++++++++++++++++ .../WixToolsetTest.Bal/TestData/MBA/Bundle.wxs | 10 ++++++++ .../TestData/WixStdBa/Bundle.wxs | 5 +--- .../WixToolsetTest.Bal/WixToolsetTest.Bal.csproj | 6 +++++ src/wixext/BalBurnBackendExtension.cs | 13 +++------- 5 files changed, 48 insertions(+), 14 deletions(-) create mode 100644 src/test/WixToolsetTest.Bal/TestData/MBA/Bundle.wxs (limited to 'src') diff --git a/src/test/WixToolsetTest.Bal/BalExtensionFixture.cs b/src/test/WixToolsetTest.Bal/BalExtensionFixture.cs index d93ed74a..97ac68a7 100644 --- a/src/test/WixToolsetTest.Bal/BalExtensionFixture.cs +++ b/src/test/WixToolsetTest.Bal/BalExtensionFixture.cs @@ -34,5 +34,33 @@ namespace WixToolsetTest.Bal Assert.True(File.Exists(bundleFile)); } } + + [Fact] + public void CantBuildUsingMBAWithNoPrereqs() + { + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); + var bundleSourceFolder = TestData.Get(@"TestData\MBA"); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + + var compileResult = WixRunner.Execute(new[] + { + "build", + Path.Combine(bundleSourceFolder, "Bundle.wxs"), + "-ext", TestData.Get(@"WixToolset.Bal.wixext.dll"), + "-ext", TestData.Get(@"WixToolset.NetFx.wixext.dll"), + "-intermediateFolder", intermediateFolder, + "-burnStub", TestData.Get(@"runtimes\win-x86\native\burn.x86.exe"), + "-o", bundleFile, + }); + Assert.Equal(6802, compileResult.ExitCode); + Assert.Equal("There must be at least one PrereqPackage when using the ManagedBootstrapperApplicationHost.\nThis is typically done by using the WixNetFxExtension and referencing one of the NetFxAsPrereq package groups.", compileResult.Messages[0].ToString()); + + Assert.False(File.Exists(bundleFile)); + Assert.False(File.Exists(Path.Combine(intermediateFolder, "test.exe"))); + } + } } } diff --git a/src/test/WixToolsetTest.Bal/TestData/MBA/Bundle.wxs b/src/test/WixToolsetTest.Bal/TestData/MBA/Bundle.wxs new file mode 100644 index 00000000..b3538c68 --- /dev/null +++ b/src/test/WixToolsetTest.Bal/TestData/MBA/Bundle.wxs @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/src/test/WixToolsetTest.Bal/TestData/WixStdBa/Bundle.wxs b/src/test/WixToolsetTest.Bal/TestData/WixStdBa/Bundle.wxs index 3a37e8ec..45bb25d1 100644 --- a/src/test/WixToolsetTest.Bal/TestData/WixStdBa/Bundle.wxs +++ b/src/test/WixToolsetTest.Bal/TestData/WixStdBa/Bundle.wxs @@ -6,10 +6,7 @@ - - - - + diff --git a/src/test/WixToolsetTest.Bal/WixToolsetTest.Bal.csproj b/src/test/WixToolsetTest.Bal/WixToolsetTest.Bal.csproj index 84a38e56..19c86839 100644 --- a/src/test/WixToolsetTest.Bal/WixToolsetTest.Bal.csproj +++ b/src/test/WixToolsetTest.Bal/WixToolsetTest.Bal.csproj @@ -12,9 +12,14 @@ + + + + + @@ -25,6 +30,7 @@ + diff --git a/src/wixext/BalBurnBackendExtension.cs b/src/wixext/BalBurnBackendExtension.cs index e1082889..71cd2d92 100644 --- a/src/wixext/BalBurnBackendExtension.cs +++ b/src/wixext/BalBurnBackendExtension.cs @@ -9,21 +9,14 @@ namespace WixToolset.Bal using WixToolset.Data.Burn; using WixToolset.Data.Tuples; using WixToolset.Extensibility; - using WixToolset.Extensibility.Data; public class BalBurnBackendExtension : BaseBurnBackendExtension { - public override void PostBackendBind(IBindResult result) + public override void BundleFinalize() { - base.PostBackendBind(result); + base.BundleFinalize(); - if (result.Wixout == null) - { - this.Messaging.Write(new Message(null, MessageLevel.Warning, 1, "BurnBackend didn't provide Wixout so skipping BalExtension PostBind verification.")); - return; - } - - var intermediate = Intermediate.Load(result.Wixout); + var intermediate = this.Context.IntermediateRepresentation; var section = intermediate.Sections.Single(); var baTuple = section.Tuples.OfType().SingleOrDefault(); -- cgit v1.2.3-55-g6feb