diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/WixToolsetTest.Bal/BalExtensionFixture.cs | 28 | ||||
| -rw-r--r-- | src/test/WixToolsetTest.Bal/TestData/MBA/Bundle.wxs | 10 | ||||
| -rw-r--r-- | src/test/WixToolsetTest.Bal/TestData/WixStdBa/Bundle.wxs | 5 | ||||
| -rw-r--r-- | src/test/WixToolsetTest.Bal/WixToolsetTest.Bal.csproj | 6 | ||||
| -rw-r--r-- | src/wixext/BalBurnBackendExtension.cs | 13 |
5 files changed, 48 insertions, 14 deletions
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 | |||
| 34 | Assert.True(File.Exists(bundleFile)); | 34 | Assert.True(File.Exists(bundleFile)); |
| 35 | } | 35 | } |
| 36 | } | 36 | } |
| 37 | |||
| 38 | [Fact] | ||
| 39 | public void CantBuildUsingMBAWithNoPrereqs() | ||
| 40 | { | ||
| 41 | using (var fs = new DisposableFileSystem()) | ||
| 42 | { | ||
| 43 | var baseFolder = fs.GetFolder(); | ||
| 44 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); | ||
| 45 | var bundleSourceFolder = TestData.Get(@"TestData\MBA"); | ||
| 46 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
| 47 | |||
| 48 | var compileResult = WixRunner.Execute(new[] | ||
| 49 | { | ||
| 50 | "build", | ||
| 51 | Path.Combine(bundleSourceFolder, "Bundle.wxs"), | ||
| 52 | "-ext", TestData.Get(@"WixToolset.Bal.wixext.dll"), | ||
| 53 | "-ext", TestData.Get(@"WixToolset.NetFx.wixext.dll"), | ||
| 54 | "-intermediateFolder", intermediateFolder, | ||
| 55 | "-burnStub", TestData.Get(@"runtimes\win-x86\native\burn.x86.exe"), | ||
| 56 | "-o", bundleFile, | ||
| 57 | }); | ||
| 58 | Assert.Equal(6802, compileResult.ExitCode); | ||
| 59 | 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()); | ||
| 60 | |||
| 61 | Assert.False(File.Exists(bundleFile)); | ||
| 62 | Assert.False(File.Exists(Path.Combine(intermediateFolder, "test.exe"))); | ||
| 63 | } | ||
| 64 | } | ||
| 37 | } | 65 | } |
| 38 | } | 66 | } |
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 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | ||
| 3 | xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> | ||
| 4 | <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"> | ||
| 5 | <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" /> | ||
| 6 | <Chain> | ||
| 7 | <PackageGroupRef Id="NetFx462Redist" /> | ||
| 8 | </Chain> | ||
| 9 | </Bundle> | ||
| 10 | </Wix> | ||
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 @@ | |||
| 6 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" /> | 6 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" /> |
| 7 | </BootstrapperApplicationRef> | 7 | </BootstrapperApplicationRef> |
| 8 | <Chain> | 8 | <Chain> |
| 9 | <!-- TODO: Replace ExePackage below with this --> | 9 | <ExePackage SourceFile="runtimes\win-x86\native\wixnative.x86.exe" /> |
| 10 | <!-- <PackageGroupRef Id="NetFx462RedistAsPrereq" /> --> | ||
| 11 | <!-- TODO: Remove explicit PerMachine --> | ||
| 12 | <ExePackage SourceFile="runtimes\win-x86\native\wixnative.x86.exe" PerMachine="no" /> | ||
| 13 | </Chain> | 10 | </Chain> |
| 14 | </Bundle> | 11 | </Bundle> |
| 15 | </Wix> | 12 | </Wix> |
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 @@ | |||
| 12 | </PropertyGroup> | 12 | </PropertyGroup> |
| 13 | 13 | ||
| 14 | <ItemGroup> | 14 | <ItemGroup> |
| 15 | <Content Include="TestData\MBA\Bundle.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 15 | <Content Include="TestData\WixStdBa\Bundle.wxs" CopyToOutputDirectory="PreserveNewest" /> | 16 | <Content Include="TestData\WixStdBa\Bundle.wxs" CopyToOutputDirectory="PreserveNewest" /> |
| 16 | </ItemGroup> | 17 | </ItemGroup> |
| 17 | 18 | ||
| 19 | <Target Name="CopyExtensions" AfterTargets="Build"> | ||
| 20 | <Copy DestinationFolder="$(OutputPath)" SourceFiles="@(WixExtension)" /> | ||
| 21 | </Target> | ||
| 22 | |||
| 18 | <ItemGroup> | 23 | <ItemGroup> |
| 19 | <ProjectReference Include="..\..\wixext\WixToolset.Bal.wixext.csproj" /> | 24 | <ProjectReference Include="..\..\wixext\WixToolset.Bal.wixext.csproj" /> |
| 20 | </ItemGroup> | 25 | </ItemGroup> |
| @@ -25,6 +30,7 @@ | |||
| 25 | <PackageReference Include="WixToolset.Core.Burn" Version="4.0.*" /> | 30 | <PackageReference Include="WixToolset.Core.Burn" Version="4.0.*" /> |
| 26 | <PackageReference Include="WixToolset.Core.WindowsInstaller" Version="4.0.*" /> | 31 | <PackageReference Include="WixToolset.Core.WindowsInstaller" Version="4.0.*" /> |
| 27 | <PackageReference Include="WixToolset.Core.TestPackage" Version="4.0.*" /> | 32 | <PackageReference Include="WixToolset.Core.TestPackage" Version="4.0.*" /> |
| 33 | <PackageReference Include="WixToolset.NetFx.wixext" Version="4.0.*" /> | ||
| 28 | </ItemGroup> | 34 | </ItemGroup> |
| 29 | 35 | ||
| 30 | <ItemGroup> | 36 | <ItemGroup> |
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 | |||
| 9 | using WixToolset.Data.Burn; | 9 | using WixToolset.Data.Burn; |
| 10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Tuples; |
| 11 | using WixToolset.Extensibility; | 11 | using WixToolset.Extensibility; |
| 12 | using WixToolset.Extensibility.Data; | ||
| 13 | 12 | ||
| 14 | public class BalBurnBackendExtension : BaseBurnBackendExtension | 13 | public class BalBurnBackendExtension : BaseBurnBackendExtension |
| 15 | { | 14 | { |
| 16 | public override void PostBackendBind(IBindResult result) | 15 | public override void BundleFinalize() |
| 17 | { | 16 | { |
| 18 | base.PostBackendBind(result); | 17 | base.BundleFinalize(); |
| 19 | 18 | ||
| 20 | if (result.Wixout == null) | 19 | var intermediate = this.Context.IntermediateRepresentation; |
| 21 | { | ||
| 22 | this.Messaging.Write(new Message(null, MessageLevel.Warning, 1, "BurnBackend didn't provide Wixout so skipping BalExtension PostBind verification.")); | ||
| 23 | return; | ||
| 24 | } | ||
| 25 | |||
| 26 | var intermediate = Intermediate.Load(result.Wixout); | ||
| 27 | var section = intermediate.Sections.Single(); | 20 | var section = intermediate.Sections.Single(); |
| 28 | 21 | ||
| 29 | var baTuple = section.Tuples.OfType<WixBootstrapperApplicationTuple>().SingleOrDefault(); | 22 | var baTuple = section.Tuples.OfType<WixBootstrapperApplicationTuple>().SingleOrDefault(); |
