aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-05-16 21:52:31 +1000
committerSean Hall <r.sean.hall@gmail.com>2020-05-16 22:01:33 +1000
commitbb7b3dc1bc20629e04014b3f049cc30625a1a06c (patch)
treef8f1d17274294783da440659c941d74883ee049a /src
parentf5bb3cb1a730f9d3c2cbd5b3ab136354a8420c54 (diff)
downloadwix-bb7b3dc1bc20629e04014b3f049cc30625a1a06c.tar.gz
wix-bb7b3dc1bc20629e04014b3f049cc30625a1a06c.tar.bz2
wix-bb7b3dc1bc20629e04014b3f049cc30625a1a06c.zip
WIXFEAT:6164 Update to latest balutil.
Diffstat (limited to 'src')
-rw-r--r--src/Samples/bafunctions/bafunctions.vcxproj12
-rw-r--r--src/Samples/bafunctions/packages.config6
-rw-r--r--src/WixToolset.Mba.Host/WixToolset.Mba.Host.csproj2
-rw-r--r--src/WixToolset.Mba.Host/packages.config2
-rw-r--r--src/dnchost/dnchost.vcxproj12
-rw-r--r--src/dnchost/packages.config6
-rw-r--r--src/mbahost/mbahost.vcxproj12
-rw-r--r--src/mbahost/packages.config6
-rw-r--r--src/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj2
-rw-r--r--src/test/examples/FullFramework2MBA/Example.FullFramework2MBA.csproj6
-rw-r--r--src/test/examples/FullFramework2MBA/packages.config2
-rw-r--r--src/test/examples/FullFramework4MBA/Example.FullFramework4MBA.csproj2
-rw-r--r--src/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj2
-rw-r--r--src/test/examples/TestEngine/Example.TestEngine.vcxproj12
-rw-r--r--src/test/examples/TestEngine/TestEngine.cpp4
-rw-r--r--src/test/examples/TestEngine/packages.config6
-rw-r--r--src/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj4
-rw-r--r--src/wixstdba/WixStandardBootstrapperApplication.cpp232
-rw-r--r--src/wixstdba/packages.config6
-rw-r--r--src/wixstdba/wixstdba.mc7
-rw-r--r--src/wixstdba/wixstdba.vcxproj12
21 files changed, 178 insertions, 177 deletions
diff --git a/src/Samples/bafunctions/bafunctions.vcxproj b/src/Samples/bafunctions/bafunctions.vcxproj
index 9f2181f2..d4de1461 100644
--- a/src/Samples/bafunctions/bafunctions.vcxproj
+++ b/src/Samples/bafunctions/bafunctions.vcxproj
@@ -2,9 +2,9 @@
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props" Condition="Exists('..\..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" /> 5 <Import Project="..\..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props" Condition="Exists('..\..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" />
6 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" /> 6 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" />
7 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" /> 7 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" />
8 8
9 <ItemGroup Label="ProjectConfigurations"> 9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32"> 10 <ProjectConfiguration Include="Debug|Win32">
@@ -57,9 +57,9 @@
57 <PropertyGroup> 57 <PropertyGroup>
58 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 58 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
59 </PropertyGroup> 59 </PropertyGroup>
60 <Error Condition="!Exists('..\..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props'))" /> 60 <Error Condition="!Exists('..\..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props'))" />
61 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props'))" /> 61 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props'))" />
62 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props'))" /> 62 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props'))" />
63 <Error Condition="!Exists('..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" /> 63 <Error Condition="!Exists('..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
64 </Target> 64 </Target>
65</Project> 65</Project>
diff --git a/src/Samples/bafunctions/packages.config b/src/Samples/bafunctions/packages.config
index 23b191d4..1b4c9487 100644
--- a/src/Samples/bafunctions/packages.config
+++ b/src/Samples/bafunctions/packages.config
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.15" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.16" targetFramework="native" />
5 <package id="WixToolset.BalUtil" version="4.0.19" targetFramework="native" /> 5 <package id="WixToolset.BalUtil" version="4.0.22" targetFramework="native" />
6 <package id="WixToolset.DUtil" version="4.0.18" targetFramework="native" /> 6 <package id="WixToolset.DUtil" version="4.0.23" targetFramework="native" />
7</packages> \ No newline at end of file 7</packages> \ No newline at end of file
diff --git a/src/WixToolset.Mba.Host/WixToolset.Mba.Host.csproj b/src/WixToolset.Mba.Host/WixToolset.Mba.Host.csproj
index 65467acc..579284f5 100644
--- a/src/WixToolset.Mba.Host/WixToolset.Mba.Host.csproj
+++ b/src/WixToolset.Mba.Host/WixToolset.Mba.Host.csproj
@@ -44,7 +44,7 @@
44 <Reference Include="System.Data" /> 44 <Reference Include="System.Data" />
45 <Reference Include="System.Xml" /> 45 <Reference Include="System.Xml" />
46 <Reference Include="WixToolset.Mba.Core"> 46 <Reference Include="WixToolset.Mba.Core">
47 <HintPath>..\..\packages\WixToolset.Mba.Core.4.0.19\lib\net20\WixToolset.Mba.Core.dll</HintPath> 47 <HintPath>..\..\packages\WixToolset.Mba.Core.4.0.22\lib\net20\WixToolset.Mba.Core.dll</HintPath>
48 </Reference> 48 </Reference>
49 </ItemGroup> 49 </ItemGroup>
50 <ItemGroup> 50 <ItemGroup>
diff --git a/src/WixToolset.Mba.Host/packages.config b/src/WixToolset.Mba.Host/packages.config
index 10ce3830..0565784e 100644
--- a/src/WixToolset.Mba.Host/packages.config
+++ b/src/WixToolset.Mba.Host/packages.config
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="net20" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="net20" developmentDependency="true" />
4 <package id="WixToolset.Mba.Core" version="4.0.19" targetFramework="net20" /> 4 <package id="WixToolset.Mba.Core" version="4.0.22" targetFramework="net20" />
5</packages> \ No newline at end of file 5</packages> \ No newline at end of file
diff --git a/src/dnchost/dnchost.vcxproj b/src/dnchost/dnchost.vcxproj
index e2b8b529..f61c084e 100644
--- a/src/dnchost/dnchost.vcxproj
+++ b/src/dnchost/dnchost.vcxproj
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4 <Import Project="..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props" Condition="Exists('..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" /> 4 <Import Project="..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props" Condition="Exists('..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" />
5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" /> 5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" />
6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" /> 6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" />
7 <ItemGroup Label="ProjectConfigurations"> 7 <ItemGroup Label="ProjectConfigurations">
8 <ProjectConfiguration Include="Debug|Win32"> 8 <ProjectConfiguration Include="Debug|Win32">
9 <Configuration>Debug</Configuration> 9 <Configuration>Debug</Configuration>
@@ -69,9 +69,9 @@
69 <PropertyGroup> 69 <PropertyGroup>
70 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 70 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
71 </PropertyGroup> 71 </PropertyGroup>
72 <Error Condition="!Exists('..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props'))" /> 72 <Error Condition="!Exists('..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props'))" />
73 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props'))" /> 73 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props'))" />
74 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props'))" /> 74 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props'))" />
75 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" /> 75 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
76 </Target> 76 </Target>
77</Project> \ No newline at end of file 77</Project> \ No newline at end of file
diff --git a/src/dnchost/packages.config b/src/dnchost/packages.config
index c8911ea5..fdcf876c 100644
--- a/src/dnchost/packages.config
+++ b/src/dnchost/packages.config
@@ -2,7 +2,7 @@
2<packages> 2<packages>
3 <package id="runtime.win-x86.Microsoft.NETCore.DotNetAppHost" version="3.1.3" targetFramework="native" /> 3 <package id="runtime.win-x86.Microsoft.NETCore.DotNetAppHost" version="3.1.3" targetFramework="native" />
4 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" /> 4 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" />
5 <package id="WixToolset.BootstrapperCore.Native" version="4.0.15" targetFramework="native" /> 5 <package id="WixToolset.BootstrapperCore.Native" version="4.0.16" targetFramework="native" />
6 <package id="WixToolset.BalUtil" version="4.0.19" targetFramework="native" /> 6 <package id="WixToolset.BalUtil" version="4.0.22" targetFramework="native" />
7 <package id="WixToolset.DUtil" version="4.0.18" targetFramework="native" /> 7 <package id="WixToolset.DUtil" version="4.0.23" targetFramework="native" />
8</packages> \ No newline at end of file 8</packages> \ No newline at end of file
diff --git a/src/mbahost/mbahost.vcxproj b/src/mbahost/mbahost.vcxproj
index fbcc9094..037adc99 100644
--- a/src/mbahost/mbahost.vcxproj
+++ b/src/mbahost/mbahost.vcxproj
@@ -2,9 +2,9 @@
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props" Condition="Exists('..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" /> 5 <Import Project="..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props" Condition="Exists('..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" />
6 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" /> 6 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" />
7 <Import Project="..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" /> 7 <Import Project="..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" />
8 8
9 <ItemGroup Label="ProjectConfigurations"> 9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32"> 10 <ProjectConfiguration Include="Debug|Win32">
@@ -68,9 +68,9 @@
68 <PropertyGroup> 68 <PropertyGroup>
69 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 69 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
70 </PropertyGroup> 70 </PropertyGroup>
71 <Error Condition="!Exists('..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props'))" /> 71 <Error Condition="!Exists('..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props'))" />
72 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props'))" /> 72 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props'))" />
73 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props'))" /> 73 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props'))" />
74 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" /> 74 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
75 </Target> 75 </Target>
76</Project> \ No newline at end of file 76</Project> \ No newline at end of file
diff --git a/src/mbahost/packages.config b/src/mbahost/packages.config
index 23b191d4..1b4c9487 100644
--- a/src/mbahost/packages.config
+++ b/src/mbahost/packages.config
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.15" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.16" targetFramework="native" />
5 <package id="WixToolset.BalUtil" version="4.0.19" targetFramework="native" /> 5 <package id="WixToolset.BalUtil" version="4.0.22" targetFramework="native" />
6 <package id="WixToolset.DUtil" version="4.0.18" targetFramework="native" /> 6 <package id="WixToolset.DUtil" version="4.0.23" targetFramework="native" />
7</packages> \ No newline at end of file 7</packages> \ No newline at end of file
diff --git a/src/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj b/src/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj
index 326633ba..1224fa49 100644
--- a/src/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj
+++ b/src/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj
@@ -13,6 +13,6 @@
13 13
14 <ItemGroup> 14 <ItemGroup>
15 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" /> 15 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" />
16 <PackageReference Include="WixToolset.Mba.Core" Version="4.0.19" /> 16 <PackageReference Include="WixToolset.Mba.Core" Version="4.0.22" />
17 </ItemGroup> 17 </ItemGroup>
18</Project> \ No newline at end of file 18</Project> \ No newline at end of file
diff --git a/src/test/examples/FullFramework2MBA/Example.FullFramework2MBA.csproj b/src/test/examples/FullFramework2MBA/Example.FullFramework2MBA.csproj
index c946fcde..d08565ff 100644
--- a/src/test/examples/FullFramework2MBA/Example.FullFramework2MBA.csproj
+++ b/src/test/examples/FullFramework2MBA/Example.FullFramework2MBA.csproj
@@ -3,7 +3,7 @@
3 3
4 4
5<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 5<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <Import Project="..\..\..\..\packages\WixToolset.Mba.Core.4.0.19\build\net20\WixToolset.Mba.Core.props" Condition="Exists('..\..\..\..\packages\WixToolset.Mba.Core.4.0.19\build\net20\WixToolset.Mba.Core.props')" /> 6 <Import Project="..\..\..\..\packages\WixToolset.Mba.Core.4.0.22\build\net20\WixToolset.Mba.Core.props" Condition="Exists('..\..\..\..\packages\WixToolset.Mba.Core.4.0.22\build\net20\WixToolset.Mba.Core.props')" />
7 <PropertyGroup> 7 <PropertyGroup>
8 <ProjectGuid>{CC4236FC-226E-4232-AB50-24CBEC4D314D}</ProjectGuid> 8 <ProjectGuid>{CC4236FC-226E-4232-AB50-24CBEC4D314D}</ProjectGuid>
9 <AssemblyName>Example.FullFramework2MBA</AssemblyName> 9 <AssemblyName>Example.FullFramework2MBA</AssemblyName>
@@ -39,7 +39,7 @@
39 <Reference Include="System.Data" /> 39 <Reference Include="System.Data" />
40 <Reference Include="System.Xml" /> 40 <Reference Include="System.Xml" />
41 <Reference Include="WixToolset.Mba.Core"> 41 <Reference Include="WixToolset.Mba.Core">
42 <HintPath>..\..\..\..\packages\WixToolset.Mba.Core.4.0.19\lib\net20\WixToolset.Mba.Core.dll</HintPath> 42 <HintPath>..\..\..\..\packages\WixToolset.Mba.Core.4.0.22\lib\net20\WixToolset.Mba.Core.dll</HintPath>
43 </Reference> 43 </Reference>
44 </ItemGroup> 44 </ItemGroup>
45 45
@@ -50,7 +50,7 @@
50 <PropertyGroup> 50 <PropertyGroup>
51 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 51 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
52 </PropertyGroup> 52 </PropertyGroup>
53 <Error Condition="!Exists('..\..\..\..\packages\WixToolset.Mba.Core.4.0.19\build\net20\WixToolset.Mba.Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\WixToolset.Mba.Core.4.0.19\build\net20\WixToolset.Mba.Core.props'))" /> 53 <Error Condition="!Exists('..\..\..\..\packages\WixToolset.Mba.Core.4.0.22\build\net20\WixToolset.Mba.Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\WixToolset.Mba.Core.4.0.22\build\net20\WixToolset.Mba.Core.props'))" />
54 <Error Condition="!Exists('..\..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" /> 54 <Error Condition="!Exists('..\..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
55 </Target> 55 </Target>
56</Project> \ No newline at end of file 56</Project> \ No newline at end of file
diff --git a/src/test/examples/FullFramework2MBA/packages.config b/src/test/examples/FullFramework2MBA/packages.config
index 4f9f88e6..1f2a91d9 100644
--- a/src/test/examples/FullFramework2MBA/packages.config
+++ b/src/test/examples/FullFramework2MBA/packages.config
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="WixToolset.Mba.Core" version="4.0.19" targetFramework="net461" /> 3 <package id="WixToolset.Mba.Core" version="4.0.22" targetFramework="net461" />
4</packages> \ No newline at end of file 4</packages> \ No newline at end of file
diff --git a/src/test/examples/FullFramework4MBA/Example.FullFramework4MBA.csproj b/src/test/examples/FullFramework4MBA/Example.FullFramework4MBA.csproj
index 9be3cc4a..51f7090f 100644
--- a/src/test/examples/FullFramework4MBA/Example.FullFramework4MBA.csproj
+++ b/src/test/examples/FullFramework4MBA/Example.FullFramework4MBA.csproj
@@ -9,7 +9,7 @@
9 9
10 <ItemGroup> 10 <ItemGroup>
11 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" /> 11 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" />
12 <PackageReference Include="WixToolset.Mba.Core" Version="4.0.19" PrivateAssets="All" /> 12 <PackageReference Include="WixToolset.Mba.Core" Version="4.0.22" PrivateAssets="All" />
13 </ItemGroup> 13 </ItemGroup>
14 14
15 <ItemGroup> 15 <ItemGroup>
diff --git a/src/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj b/src/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj
index 1d325b1b..dc013b68 100644
--- a/src/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj
+++ b/src/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj
@@ -18,6 +18,6 @@
18 18
19 <ItemGroup> 19 <ItemGroup>
20 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" /> 20 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" />
21 <PackageReference Include="WixToolset.Mba.Core" Version="4.0.19" /> 21 <PackageReference Include="WixToolset.Mba.Core" Version="4.0.22" />
22 </ItemGroup> 22 </ItemGroup>
23</Project> \ No newline at end of file 23</Project> \ No newline at end of file
diff --git a/src/test/examples/TestEngine/Example.TestEngine.vcxproj b/src/test/examples/TestEngine/Example.TestEngine.vcxproj
index b9425295..ef54389d 100644
--- a/src/test/examples/TestEngine/Example.TestEngine.vcxproj
+++ b/src/test/examples/TestEngine/Example.TestEngine.vcxproj
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4 <Import Project="..\..\..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props" Condition="Exists('..\..\..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" /> 4 <Import Project="..\..\..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props" Condition="Exists('..\..\..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" />
5 <Import Project="..\..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" /> 5 <Import Project="..\..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" />
6 <Import Project="..\..\..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" /> 6 <Import Project="..\..\..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" />
7 <ItemGroup Label="ProjectConfigurations"> 7 <ItemGroup Label="ProjectConfigurations">
8 <ProjectConfiguration Include="Debug|Win32"> 8 <ProjectConfiguration Include="Debug|Win32">
9 <Configuration>Debug</Configuration> 9 <Configuration>Debug</Configuration>
@@ -68,8 +68,8 @@
68 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 68 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
69 </PropertyGroup> 69 </PropertyGroup>
70 <Error Condition="!Exists('..\..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" /> 70 <Error Condition="!Exists('..\..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
71 <Error Condition="!Exists('..\..\..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props'))" /> 71 <Error Condition="!Exists('..\..\..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props'))" />
72 <Error Condition="!Exists('..\..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props'))" /> 72 <Error Condition="!Exists('..\..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props'))" />
73 <Error Condition="!Exists('..\..\..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props'))" /> 73 <Error Condition="!Exists('..\..\..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props'))" />
74 </Target> 74 </Target>
75</Project> \ No newline at end of file 75</Project> \ No newline at end of file
diff --git a/src/test/examples/TestEngine/TestEngine.cpp b/src/test/examples/TestEngine/TestEngine.cpp
index 7b7dafce..a6a21174 100644
--- a/src/test/examples/TestEngine/TestEngine.cpp
+++ b/src/test/examples/TestEngine/TestEngine.cpp
@@ -53,7 +53,7 @@ HRESULT TestEngine::LoadBA(
53 m_pCreateResults->cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS); 53 m_pCreateResults->cbSize = sizeof(BOOTSTRAPPER_CREATE_RESULTS);
54 54
55 m_hBAModule = ::LoadLibraryExW(wzBAFilePath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); 55 m_hBAModule = ::LoadLibraryExW(wzBAFilePath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
56 ExitOnNullWithLastError(m_hBAModule, hr, "Failed to load BA dll."); 56 ConsoleExitOnNullWithLastError(m_hBAModule, hr, CONSOLE_COLOR_RED, "Failed to load BA dll.");
57 57
58 pfnCreate = (PFN_BOOTSTRAPPER_APPLICATION_CREATE)::GetProcAddress(m_hBAModule, "BootstrapperApplicationCreate"); 58 pfnCreate = (PFN_BOOTSTRAPPER_APPLICATION_CREATE)::GetProcAddress(m_hBAModule, "BootstrapperApplicationCreate");
59 ConsoleExitOnNull(pfnCreate, hr, E_OUTOFMEMORY, CONSOLE_COLOR_RED, "Failed to get address for BootstrapperApplicationCreate."); 59 ConsoleExitOnNull(pfnCreate, hr, E_OUTOFMEMORY, CONSOLE_COLOR_RED, "Failed to get address for BootstrapperApplicationCreate.");
@@ -181,7 +181,7 @@ HRESULT TestEngine::BAEngineQuit(
181 181
182 if (!::PostThreadMessageW(m_dwThreadId, WM_TESTENG_QUIT, static_cast<WPARAM>(pArgs->dwExitCode), 0)) 182 if (!::PostThreadMessageW(m_dwThreadId, WM_TESTENG_QUIT, static_cast<WPARAM>(pArgs->dwExitCode), 0))
183 { 183 {
184 ExitWithLastError(hr, "Failed to post shutdown message."); 184 ConsoleExitWithLastError(hr, CONSOLE_COLOR_RED, "Failed to post shutdown message.");
185 } 185 }
186 186
187LExit: 187LExit:
diff --git a/src/test/examples/TestEngine/packages.config b/src/test/examples/TestEngine/packages.config
index 23b191d4..1b4c9487 100644
--- a/src/test/examples/TestEngine/packages.config
+++ b/src/test/examples/TestEngine/packages.config
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.15" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.16" targetFramework="native" />
5 <package id="WixToolset.BalUtil" version="4.0.19" targetFramework="native" /> 5 <package id="WixToolset.BalUtil" version="4.0.22" targetFramework="native" />
6 <package id="WixToolset.DUtil" version="4.0.18" targetFramework="native" /> 6 <package id="WixToolset.DUtil" version="4.0.23" targetFramework="native" />
7</packages> \ No newline at end of file 7</packages> \ No newline at end of file
diff --git a/src/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj b/src/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj
index 3b559f9b..02d400ee 100644
--- a/src/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj
+++ b/src/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj
@@ -1,4 +1,4 @@
1<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> 1<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
2 2
3 <PropertyGroup> 3 <PropertyGroup>
4 <TargetFramework>netcoreapp3.1</TargetFramework> 4 <TargetFramework>netcoreapp3.1</TargetFramework>
@@ -11,6 +11,6 @@
11 11
12 <ItemGroup> 12 <ItemGroup>
13 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" /> 13 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" />
14 <PackageReference Include="WixToolset.Mba.Core" Version="4.0.19" /> 14 <PackageReference Include="WixToolset.Mba.Core" Version="4.0.22" />
15 </ItemGroup> 15 </ItemGroup>
16</Project> \ No newline at end of file 16</Project> \ No newline at end of file
diff --git a/src/wixstdba/WixStandardBootstrapperApplication.cpp b/src/wixstdba/WixStandardBootstrapperApplication.cpp
index 826c4386..69913de2 100644
--- a/src/wixstdba/WixStandardBootstrapperApplication.cpp
+++ b/src/wixstdba/WixStandardBootstrapperApplication.cpp
@@ -146,13 +146,13 @@ static THEME_ASSIGN_CONTROL_ID vrgInitControls[] = {
146 { WIXSTDBA_CONTROL_FAILURE_RESTART_BUTTON, L"FailureRestartButton" }, 146 { WIXSTDBA_CONTROL_FAILURE_RESTART_BUTTON, L"FailureRestartButton" },
147}; 147};
148 148
149typedef struct _WIXSTDBA_PREREQ_PACKAGE 149typedef struct _WIXSTDBA_PACKAGE_INFO
150{ 150{
151 LPWSTR sczPackageId; 151 LPWSTR sczPackageId;
152 BOOL fWasAlreadyInstalled; 152 BOOL fWasAlreadyInstalled;
153 BOOL fPlannedToBeInstalled; 153 BOOL fPlannedToBeInstalled;
154 BOOL fSuccessfullyInstalled; 154 BOOL fSuccessfullyInstalled;
155} WIXSTDBA_PREREQ_PACKAGE; 155} WIXSTDBA_PACKAGE_INFO;
156 156
157 157
158static HRESULT DAPI EvaluateVariableConditionCallback( 158static HRESULT DAPI EvaluateVariableConditionCallback(
@@ -268,7 +268,11 @@ public: // IBootstrapperApplication
268 __inout BOOL* pfCancel 268 __inout BOOL* pfCancel
269 ) 269 )
270 { 270 {
271 BalInfoAddRelatedBundleAsPackage(&m_Bundle.packages, wzBundleId, relationType, fPerMachine); 271 BAL_INFO_PACKAGE* pPackage = NULL;
272 if (SUCCEEDED(BalInfoAddRelatedBundleAsPackage(&m_Bundle.packages, wzBundleId, relationType, fPerMachine, &pPackage)))
273 {
274 InitializePackageInfoForPackage(pPackage);
275 }
272 276
273 // If we're not doing a prerequisite install, remember when our bundle would cause a downgrade. 277 // If we're not doing a prerequisite install, remember when our bundle would cause a downgrade.
274 if (!m_fPrereq && BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE == operation) 278 if (!m_fPrereq && BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE == operation)
@@ -286,13 +290,15 @@ public: // IBootstrapperApplication
286 __in BOOTSTRAPPER_PACKAGE_STATE state 290 __in BOOTSTRAPPER_PACKAGE_STATE state
287 ) 291 )
288 { 292 {
289 WIXSTDBA_PREREQ_PACKAGE* pPrereqPackage = NULL; 293 WIXSTDBA_PACKAGE_INFO* pPackageInfo = NULL;
290 BAL_INFO_PACKAGE* pPackage = NULL; 294 BAL_INFO_PACKAGE* pPackage = NULL;
291 HRESULT hr = GetPrereqPackage(wzPackageId, &pPrereqPackage, &pPackage); 295
292 if (SUCCEEDED(hr) && BOOTSTRAPPER_PACKAGE_STATE_PRESENT == state) 296 if (BOOTSTRAPPER_PACKAGE_STATE_PRESENT == state &&
297 SUCCEEDED(GetPackageInfo(wzPackageId, &pPackageInfo, &pPackage)) &&
298 pPackageInfo)
293 { 299 {
294 // If the prerequisite package is already installed, remember that. 300 // If the package is already installed, remember that.
295 pPrereqPackage->fWasAlreadyInstalled = TRUE; 301 pPackageInfo->fWasAlreadyInstalled = TRUE;
296 } 302 }
297 303
298 return S_OK; 304 return S_OK;
@@ -314,9 +320,11 @@ public: // IBootstrapperApplication
314 m_fPrereqAlreadyInstalled = TRUE; 320 m_fPrereqAlreadyInstalled = TRUE;
315 321
316 // At this point we have to assume that all prerequisite packages need to be installed, so set to false if any of them aren't installed. 322 // At this point we have to assume that all prerequisite packages need to be installed, so set to false if any of them aren't installed.
317 for (DWORD i = 0; i < m_cPrereqPackages; ++i) 323 for (DWORD i = 0; i < m_Bundle.packages.cPackages; ++i)
318 { 324 {
319 if (m_rgPrereqPackages[i].sczPackageId && !m_rgPrereqPackages[i].fWasAlreadyInstalled) 325 BAL_INFO_PACKAGE* pPackage = &m_Bundle.packages.rgPackages[i];
326 WIXSTDBA_PACKAGE_INFO* pPackageInfo = reinterpret_cast<WIXSTDBA_PACKAGE_INFO*>(pPackage->pvCustomData);
327 if (pPackage->fPrereqPackage && pPackageInfo && !pPackageInfo->fWasAlreadyInstalled)
320 { 328 {
321 m_fPrereqAlreadyInstalled = FALSE; 329 m_fPrereqAlreadyInstalled = FALSE;
322 break; 330 break;
@@ -384,17 +392,17 @@ public: // IBootstrapperApplication
384 ) 392 )
385 { 393 {
386 HRESULT hr = S_OK; 394 HRESULT hr = S_OK;
387 WIXSTDBA_PREREQ_PACKAGE* pPrereqPackage = NULL; 395 WIXSTDBA_PACKAGE_INFO* pPackageInfo = NULL;
388 BAL_INFO_PACKAGE* pPackage = NULL; 396 BAL_INFO_PACKAGE* pPackage = NULL;
389 397
390 // If we're planning to install a prerequisite, install it. The prerequisite needs to be installed 398 // If we're planning to install a prerequisite, install it. The prerequisite needs to be installed
391 // in all cases (even uninstall!) so the BA can load next. 399 // in all cases (even uninstall!) so the BA can load next.
392 if (m_fPrereq) 400 if (m_fPrereq)
393 { 401 {
394 // Only install prerequisite packages, and check the InstallCondition on prerequisite support packages. 402 // Only install prerequisite packages, and check the InstallCondition on them.
395 BOOL fInstall = FALSE; 403 BOOL fInstall = FALSE;
396 hr = GetPrereqPackage(wzPackageId, &pPrereqPackage, &pPackage); 404 hr = GetPackageInfo(wzPackageId, &pPackageInfo, &pPackage);
397 if (SUCCEEDED(hr) && pPackage) 405 if (SUCCEEDED(hr) && pPackage->fPrereqPackage && pPackageInfo)
398 { 406 {
399 if (pPackage->sczInstallCondition && *pPackage->sczInstallCondition) 407 if (pPackage->sczInstallCondition && *pPackage->sczInstallCondition)
400 { 408 {
@@ -410,7 +418,7 @@ public: // IBootstrapperApplication
410 fInstall = TRUE; 418 fInstall = TRUE;
411 } 419 }
412 420
413 pPrereqPackage->fPlannedToBeInstalled = fInstall; 421 pPackageInfo->fPlannedToBeInstalled = fInstall;
414 } 422 }
415 423
416 if (fInstall) 424 if (fInstall)
@@ -459,9 +467,11 @@ public: // IBootstrapperApplication
459 m_fPrereqAlreadyInstalled = TRUE; 467 m_fPrereqAlreadyInstalled = TRUE;
460 468
461 // Now that we've planned the packages, we can focus on the prerequisite packages that are supposed to be installed. 469 // Now that we've planned the packages, we can focus on the prerequisite packages that are supposed to be installed.
462 for (DWORD i = 0; i < m_cPrereqPackages; ++i) 470 for (DWORD i = 0; i < m_Bundle.packages.cPackages; ++i)
463 { 471 {
464 if (m_rgPrereqPackages[i].sczPackageId && !m_rgPrereqPackages[i].fWasAlreadyInstalled && m_rgPrereqPackages[i].fPlannedToBeInstalled) 472 BAL_INFO_PACKAGE* pPackage = &m_Bundle.packages.rgPackages[i];
473 WIXSTDBA_PACKAGE_INFO* pPackageInfo = reinterpret_cast<WIXSTDBA_PACKAGE_INFO*>(pPackage->pvCustomData);
474 if (pPackage->fPrereqPackage && pPackageInfo && !pPackageInfo->fWasAlreadyInstalled && pPackageInfo->fPlannedToBeInstalled)
465 { 475 {
466 m_fPrereqAlreadyInstalled = FALSE; 476 m_fPrereqAlreadyInstalled = FALSE;
467 break; 477 break;
@@ -706,6 +716,8 @@ public: // IBootstrapperApplication
706 __in_z LPCWSTR wzPackageId, 716 __in_z LPCWSTR wzPackageId,
707 __in BOOL fExecute, 717 __in BOOL fExecute,
708 __in BOOTSTRAPPER_ACTION_STATE action, 718 __in BOOTSTRAPPER_ACTION_STATE action,
719 __in INSTALLUILEVEL uiLevel,
720 __in BOOL fDisableExternalUiHandler,
709 __inout BOOL* pfCancel 721 __inout BOOL* pfCancel
710 ) 722 )
711 { 723 {
@@ -750,12 +762,7 @@ public: // IBootstrapperApplication
750 wz = sczFormattedString ? sczFormattedString : pPackage->sczDisplayName ? pPackage->sczDisplayName : wzPackageId; 762 wz = sczFormattedString ? sczFormattedString : pPackage->sczDisplayName ? pPackage->sczDisplayName : wzPackageId;
751 } 763 }
752 764
753 // Needs to match MsiEngineCalculateInstallUiLevel in msiengine.cpp in Burn. 765 fShowingInternalUiThisPackage = INSTALLUILEVEL_NONE != (INSTALLUILEVEL_NONE & uiLevel);
754 fShowingInternalUiThisPackage = pPackage && pPackage->fDisplayInternalUI &&
755 BOOTSTRAPPER_ACTION_STATE_UNINSTALL != action &&
756 BOOTSTRAPPER_ACTION_STATE_REPAIR != action &&
757 (BOOTSTRAPPER_DISPLAY_FULL == m_command.display ||
758 BOOTSTRAPPER_DISPLAY_PASSIVE == m_command.display);
759 766
760 ThemeSetTextControl(m_pTheme, WIXSTDBA_CONTROL_EXECUTE_PROGRESS_PACKAGE_TEXT, wz); 767 ThemeSetTextControl(m_pTheme, WIXSTDBA_CONTROL_EXECUTE_PROGRESS_PACKAGE_TEXT, wz);
761 ThemeSetTextControl(m_pTheme, WIXSTDBA_CONTROL_OVERALL_PROGRESS_PACKAGE_TEXT, wz); 768 ThemeSetTextControl(m_pTheme, WIXSTDBA_CONTROL_OVERALL_PROGRESS_PACKAGE_TEXT, wz);
@@ -763,7 +770,7 @@ public: // IBootstrapperApplication
763 770
764 ::EnterCriticalSection(&m_csShowingInternalUiThisPackage); 771 ::EnterCriticalSection(&m_csShowingInternalUiThisPackage);
765 m_fShowingInternalUiThisPackage = fShowingInternalUiThisPackage; 772 m_fShowingInternalUiThisPackage = fShowingInternalUiThisPackage;
766 hr = __super::OnExecutePackageBegin(wzPackageId, fExecute, action, pfCancel); 773 hr = __super::OnExecutePackageBegin(wzPackageId, fExecute, action, uiLevel, fDisableExternalUiHandler, pfCancel);
767 ::LeaveCriticalSection(&m_csShowingInternalUiThisPackage); 774 ::LeaveCriticalSection(&m_csShowingInternalUiThisPackage);
768 775
769 ReleaseStr(sczFormattedString); 776 ReleaseStr(sczFormattedString);
@@ -811,16 +818,16 @@ public: // IBootstrapperApplication
811 818
812 hr = __super::OnExecutePackageComplete(wzPackageId, hrStatus, restart, recommendation, pAction); 819 hr = __super::OnExecutePackageComplete(wzPackageId, hrStatus, restart, recommendation, pAction);
813 820
814 WIXSTDBA_PREREQ_PACKAGE* pPrereqPackage = NULL; 821 WIXSTDBA_PACKAGE_INFO* pPackageInfo = NULL;
815 BAL_INFO_PACKAGE* pPackage; 822 BAL_INFO_PACKAGE* pPackage;
816 HRESULT hrPrereq = GetPrereqPackage(wzPackageId, &pPrereqPackage, &pPackage); 823 HRESULT hrPrereq = GetPackageInfo(wzPackageId, &pPackageInfo, &pPackage);
817 if (SUCCEEDED(hrPrereq)) 824 if (SUCCEEDED(hrPrereq) && pPackageInfo)
818 { 825 {
819 pPrereqPackage->fSuccessfullyInstalled = SUCCEEDED(hrStatus); 826 pPackageInfo->fSuccessfullyInstalled = SUCCEEDED(hrStatus);
820 827
821 // If the prerequisite required a restart (any restart) then do an immediate 828 // If the prerequisite required a restart (any restart) then do an immediate
822 // restart to ensure that the bundle will get launched again post reboot. 829 // restart to ensure that the bundle will get launched again post reboot.
823 if (BOOTSTRAPPER_APPLY_RESTART_NONE != restart) 830 if (m_fPrereq && pPackage->fPrereqPackage && BOOTSTRAPPER_APPLY_RESTART_NONE != restart)
824 { 831 {
825 *pAction = BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_RESTART; 832 *pAction = BOOTSTRAPPER_EXECUTEPACKAGECOMPLETE_ACTION_RESTART;
826 } 833 }
@@ -931,11 +938,13 @@ public: // IBootstrapperApplication
931 m_fPrereqInstalled = TRUE; 938 m_fPrereqInstalled = TRUE;
932 BOOL fInstalledAPackage = FALSE; 939 BOOL fInstalledAPackage = FALSE;
933 940
934 for (DWORD i = 0; i < m_cPrereqPackages; ++i) 941 for (DWORD i = 0; i < m_Bundle.packages.cPackages; ++i)
935 { 942 {
936 if (m_rgPrereqPackages[i].sczPackageId && m_rgPrereqPackages[i].fPlannedToBeInstalled && !m_rgPrereqPackages[i].fWasAlreadyInstalled) 943 BAL_INFO_PACKAGE* pPackage = &m_Bundle.packages.rgPackages[i];
944 WIXSTDBA_PACKAGE_INFO* pPackageInfo = reinterpret_cast<WIXSTDBA_PACKAGE_INFO*>(pPackage->pvCustomData);
945 if (pPackage->fPrereqPackage && pPackageInfo && pPackageInfo->fPlannedToBeInstalled && !pPackageInfo->fWasAlreadyInstalled)
937 { 946 {
938 if (m_rgPrereqPackages[i].fSuccessfullyInstalled) 947 if (pPackageInfo->fSuccessfullyInstalled)
939 { 948 {
940 fInstalledAPackage = TRUE; 949 fInstalledAPackage = TRUE;
941 } 950 }
@@ -1164,6 +1173,9 @@ public: // IBootstrapperApplication
1164 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE: 1173 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE:
1165 OnLaunchApprovedExeCompleteFallback(reinterpret_cast<BA_ONLAUNCHAPPROVEDEXECOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONLAUNCHAPPROVEDEXECOMPLETE_RESULTS*>(pvResults)); 1174 OnLaunchApprovedExeCompleteFallback(reinterpret_cast<BA_ONLAUNCHAPPROVEDEXECOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONLAUNCHAPPROVEDEXECOMPLETE_RESULTS*>(pvResults));
1166 break; 1175 break;
1176 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE:
1177 OnPlanMsiPackageFallback(reinterpret_cast<BA_ONPLANMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANMSIPACKAGE_RESULTS*>(pvResults));
1178 break;
1167 default: 1179 default:
1168 BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "WIXSTDBA: Forwarding unknown BA message: %d", message); 1180 BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "WIXSTDBA: Forwarding unknown BA message: %d", message);
1169 m_pfnBAFunctionsProc((BA_FUNCTIONS_MESSAGE)message, pvArgs, pvResults, m_pvBAFunctionsProcContext); 1181 m_pfnBAFunctionsProc((BA_FUNCTIONS_MESSAGE)message, pvArgs, pvResults, m_pvBAFunctionsProcContext);
@@ -1617,6 +1629,18 @@ private: // privates
1617 m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE, pArgs, pResults, m_pvBAFunctionsProcContext); 1629 m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE, pArgs, pResults, m_pvBAFunctionsProcContext);
1618 } 1630 }
1619 1631
1632 void OnPlanMsiPackageFallback(
1633 __in BA_ONPLANMSIPACKAGE_ARGS* pArgs,
1634 __inout BA_ONPLANMSIPACKAGE_RESULTS* pResults
1635 )
1636 {
1637 BURN_MSI_PROPERTY actionMsiProperty = pResults->actionMsiProperty;
1638 INSTALLUILEVEL uiLevel = pResults->uiLevel;
1639 BOOL fDisableExternalUiHandler = pResults->fDisableExternalUiHandler;
1640 m_pfnBAFunctionsProc(BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE, pArgs, pResults, m_pvBAFunctionsProcContext);
1641 BalLogId(BOOTSTRAPPER_LOG_LEVEL_STANDARD, MSG_WIXSTDBA_PLANNED_MSI_PACKAGE, m_hModule, pArgs->wzPackageId, actionMsiProperty, uiLevel, fDisableExternalUiHandler ? "yes" : "no", pResults->actionMsiProperty, pResults->uiLevel, pResults->fDisableExternalUiHandler ? "yes" : "no");
1642 }
1643
1620 // 1644 //
1621 // UiThreadProc - entrypoint for UI thread. 1645 // UiThreadProc - entrypoint for UI thread.
1622 // 1646 //
@@ -1752,10 +1776,13 @@ private: // privates
1752 GetBundleFileVersion(); 1776 GetBundleFileVersion();
1753 // don't fail if we couldn't get the version info; best-effort only 1777 // don't fail if we couldn't get the version info; best-effort only
1754 1778
1779 hr = InitializePackageInfo();
1780 BalExitOnFailure(hr, "Failed to initialize wixstdba package information.");
1781
1755 if (m_fPrereq) 1782 if (m_fPrereq)
1756 { 1783 {
1757 hr = ParsePrerequisiteInformationFromXml(pixdManifest); 1784 hr = InitializePrerequisiteInformation();
1758 BalExitOnFailure(hr, "Failed to read prerequisite information."); 1785 BalExitOnFailure(hr, "Failed to initialize prerequisite information.");
1759 } 1786 }
1760 else 1787 else
1761 { 1788 {
@@ -1982,100 +2009,77 @@ private: // privates
1982 } 2009 }
1983 2010
1984 2011
1985 HRESULT ParsePrerequisiteInformationFromXml( 2012 HRESULT InitializePackageInfo()
1986 __in IXMLDOMDocument* pixdManifest
1987 )
1988 { 2013 {
1989 HRESULT hr = S_OK; 2014 HRESULT hr = S_OK;
1990 IXMLDOMNode* pNode = NULL;
1991 IXMLDOMNodeList* pNodes = NULL;
1992 DWORD cNodes = 0;
1993 LPWSTR scz = NULL;
1994 WIXSTDBA_PREREQ_PACKAGE* pPrereqPackage = NULL;
1995 BAL_INFO_PACKAGE* pPackage = NULL; 2015 BAL_INFO_PACKAGE* pPackage = NULL;
1996 2016
1997 hr = XmlSelectNodes(pixdManifest, L"/BootstrapperApplicationData/WixMbaPrereqInformation", &pNodes); 2017 for (DWORD i = 0; i < m_Bundle.packages.cPackages; ++i)
1998 if (S_FALSE == hr)
1999 { 2018 {
2000 hr = E_INVALIDARG; 2019 pPackage = &m_Bundle.packages.rgPackages[i];
2001 BalExitOnFailure(hr, "BootstrapperApplication.xml manifest is missing prerequisite information.");
2002 }
2003 BalExitOnFailure(hr, "Failed to select prerequisite information nodes.");
2004 2020
2005 hr = pNodes->get_length((long*)&cNodes); 2021 hr = InitializePackageInfoForPackage(pPackage);
2006 BalExitOnFailure(hr, "Failed to get prerequisite information node count."); 2022 BalExitOnFailure(hr, "Failed to initialize wixstdba package info for package: %ls.", pPackage->sczId);
2023 }
2007 2024
2008 m_cPrereqPackages = cNodes; 2025 LExit:
2009 m_rgPrereqPackages = static_cast<WIXSTDBA_PREREQ_PACKAGE*>(MemAlloc(sizeof(WIXSTDBA_PREREQ_PACKAGE) * m_cPrereqPackages, TRUE)); 2026 return hr;
2027 }
2010 2028
2011 hr = DictCreateWithEmbeddedKey(&m_shPrereqSupportPackages, m_cPrereqPackages, reinterpret_cast<void **>(&m_rgPrereqPackages), offsetof(WIXSTDBA_PREREQ_PACKAGE, sczPackageId), DICT_FLAG_NONE);
2012 BalExitOnFailure(hr, "Failed to create the prerequisite package dictionary.");
2013 2029
2014 for (DWORD i = 0; i < cNodes; ++i) 2030 HRESULT InitializePackageInfoForPackage(
2015 { 2031 __in BAL_INFO_PACKAGE* pPackage
2016 hr = XmlNextElement(pNodes, &pNode, NULL); 2032 )
2017 BalExitOnFailure(hr, "Failed to get next node."); 2033 {
2034 HRESULT hr = S_OK;
2018 2035
2019 hr = XmlGetAttributeEx(pNode, L"PackageId", &scz); 2036 pPackage->pvCustomData = MemAlloc(sizeof(WIXSTDBA_PACKAGE_INFO), TRUE);
2020 BalExitOnFailure(hr, "Failed to get @PackageId."); 2037 BalExitOnNull(pPackage->pvCustomData, hr, E_OUTOFMEMORY, "Failed to allocate memory for wixstdba package info.");
2021 2038
2022 hr = DictGetValue(m_shPrereqSupportPackages, scz, reinterpret_cast<void **>(&pPrereqPackage)); 2039 LExit:
2023 if (SUCCEEDED(hr)) 2040 return hr;
2024 { 2041 }
2025 hr = HRESULT_FROM_WIN32(ERROR_INVALID_DATA);
2026 BalExitOnFailure(hr, "Duplicate prerequisite information: %ls", scz);
2027 }
2028 else if (E_NOTFOUND != hr)
2029 {
2030 BalExitOnFailure(hr, "Failed to check if \"%ls\" was in the prerequisite package dictionary.", scz);
2031 }
2032 2042
2033 hr = BalInfoFindPackageById(&m_Bundle.packages, scz, &pPackage);
2034 BalExitOnFailure(hr, "Failed to get info about \"%ls\" from BootstrapperApplicationData.", scz);
2035 2043
2036 pPrereqPackage = &m_rgPrereqPackages[i]; 2044 HRESULT InitializePrerequisiteInformation()
2037 pPrereqPackage->sczPackageId = pPackage->sczId; 2045 {
2038 hr = DictAddValue(m_shPrereqSupportPackages, pPrereqPackage); 2046 HRESULT hr = S_OK;
2039 BalExitOnFailure(hr, "Failed to add \"%ls\" to the prerequisite package dictionary.", pPrereqPackage->sczPackageId); 2047 BAL_INFO_PACKAGE* pPackage = NULL;
2040 2048
2041 hr = XmlGetAttributeEx(pNode, L"LicenseFile", &scz); 2049 for (DWORD i = 0; i < m_Bundle.packages.cPackages; ++i)
2042 if (E_NOTFOUND != hr) 2050 {
2051 pPackage = &m_Bundle.packages.rgPackages[i];
2052 if (!pPackage->fPrereqPackage)
2043 { 2053 {
2044 BalExitOnFailure(hr, "Failed to get @LicenseFile."); 2054 continue;
2055 }
2045 2056
2057 if (pPackage->sczPrereqLicenseFile)
2058 {
2046 if (m_sczLicenseFile) 2059 if (m_sczLicenseFile)
2047 { 2060 {
2048 hr = HRESULT_FROM_WIN32(ERROR_INVALID_DATA); 2061 hr = HRESULT_FROM_WIN32(ERROR_INVALID_DATA);
2049 BalExitOnFailure(hr, "More than one license file specified in prerequisite info."); 2062 BalExitOnFailure(hr, "More than one license file specified in prerequisite info.");
2050 } 2063 }
2051 2064
2052 m_sczLicenseFile = scz; 2065 hr = StrAllocString(&m_sczLicenseFile, pPackage->sczPrereqLicenseFile, 0);
2053 scz = NULL; 2066 BalExitOnFailure(hr, "Failed to copy license file location from prereq package.");
2054 } 2067 }
2055 2068
2056 hr = XmlGetAttributeEx(pNode, L"LicenseUrl", &scz); 2069 if (pPackage->sczPrereqLicenseUrl)
2057 if (E_NOTFOUND != hr)
2058 { 2070 {
2059 BalExitOnFailure(hr, "Failed to get @LicenseUrl.");
2060
2061 if (m_sczLicenseUrl) 2071 if (m_sczLicenseUrl)
2062 { 2072 {
2063 hr = HRESULT_FROM_WIN32(ERROR_INVALID_DATA); 2073 hr = HRESULT_FROM_WIN32(ERROR_INVALID_DATA);
2064 BalExitOnFailure(hr, "More than one license URL specified in prerequisite info."); 2074 BalExitOnFailure(hr, "More than one license URL specified in prerequisite info.");
2065 } 2075 }
2066 2076
2067 m_sczLicenseUrl = scz; 2077 hr = StrAllocString(&m_sczLicenseUrl, pPackage->sczPrereqLicenseUrl, 0);
2068 scz = NULL; 2078 BalExitOnFailure(hr, "Failed to copy license URL from prereq package.");
2069 } 2079 }
2070
2071 // Prepare next iteration.
2072 ReleaseNullObject(pNode);
2073 } 2080 }
2074 2081
2075 LExit: 2082 LExit:
2076 ReleaseObject(pNode);
2077 ReleaseObject(pNodes);
2078 ReleaseStr(scz);
2079 return hr; 2083 return hr;
2080 } 2084 }
2081 2085
@@ -2182,37 +2186,31 @@ private: // privates
2182 return hr; 2186 return hr;
2183 } 2187 }
2184 2188
2185 HRESULT GetPrereqPackage( 2189 HRESULT GetPackageInfo(
2186 __in_z LPCWSTR wzPackageId, 2190 __in_z LPCWSTR wzPackageId,
2187 __out WIXSTDBA_PREREQ_PACKAGE** ppPrereqPackage, 2191 __out WIXSTDBA_PACKAGE_INFO** ppPackageInfo,
2188 __out BAL_INFO_PACKAGE** ppPackage 2192 __out BAL_INFO_PACKAGE** ppPackage
2189 ) 2193 )
2190 { 2194 {
2191 HRESULT hr = E_NOTFOUND; 2195 HRESULT hr = E_NOTFOUND;
2192 WIXSTDBA_PREREQ_PACKAGE* pPrereqPackage = NULL; 2196 WIXSTDBA_PACKAGE_INFO* pPackageInfo = NULL;
2193 BAL_INFO_PACKAGE* pPackage = NULL; 2197 BAL_INFO_PACKAGE* pPackage = NULL;
2194 2198
2195 Assert(wzPackageId && *wzPackageId); 2199 Assert(wzPackageId && *wzPackageId);
2196 Assert(ppPackage); 2200 Assert(ppPackage);
2197 Assert(ppPrereqPackage); 2201 Assert(ppPackageInfo);
2198 2202
2199 if (m_shPrereqSupportPackages) 2203 hr = BalInfoFindPackageById(&m_Bundle.packages, wzPackageId, &pPackage);
2204 if (E_NOTFOUND != hr)
2200 { 2205 {
2201 hr = DictGetValue(m_shPrereqSupportPackages, wzPackageId, reinterpret_cast<void **>(&pPrereqPackage)); 2206 ExitOnFailure(hr, "Failed trying to find the requested package.");
2202 if (E_NOTFOUND != hr)
2203 {
2204 ExitOnFailure(hr, "Failed to check the dictionary of prerequisite packages.");
2205 2207
2206 // Ignore error. 2208 pPackageInfo = reinterpret_cast<WIXSTDBA_PACKAGE_INFO*>(pPackage->pvCustomData);
2207 BalInfoFindPackageById(&m_Bundle.packages, wzPackageId, &pPackage);
2208 }
2209 } 2209 }
2210 2210
2211 if (pPrereqPackage) 2211 *ppPackageInfo = pPackageInfo;
2212 { 2212 *ppPackage = pPackage;
2213 *ppPrereqPackage = pPrereqPackage; 2213
2214 *ppPackage = pPackage;
2215 }
2216 LExit: 2214 LExit:
2217 return hr; 2215 return hr;
2218 } 2216 }
@@ -3636,9 +3634,6 @@ public:
3636 m_fSupportCacheOnly = FALSE; 3634 m_fSupportCacheOnly = FALSE;
3637 3635
3638 m_sdOverridableVariables = NULL; 3636 m_sdOverridableVariables = NULL;
3639 m_shPrereqSupportPackages = NULL;
3640 m_rgPrereqPackages = NULL;
3641 m_cPrereqPackages = 0;
3642 m_pTaskbarList = NULL; 3637 m_pTaskbarList = NULL;
3643 m_uTaskbarButtonCreatedMessage = UINT_MAX; 3638 m_uTaskbarButtonCreatedMessage = UINT_MAX;
3644 m_fTaskbarButtonOK = FALSE; 3639 m_fTaskbarButtonOK = FALSE;
@@ -3667,11 +3662,14 @@ public:
3667 AssertSz(!::IsWindow(m_hWnd), "Window should have been destroyed before destructor."); 3662 AssertSz(!::IsWindow(m_hWnd), "Window should have been destroyed before destructor.");
3668 AssertSz(!m_pTheme, "Theme should have been released before destructor."); 3663 AssertSz(!m_pTheme, "Theme should have been released before destructor.");
3669 3664
3665 for (DWORD i = 0; i < m_Bundle.packages.cPackages; ++i)
3666 {
3667 ReleaseMem(m_Bundle.packages.rgPackages[i].pvCustomData);
3668 }
3669
3670 ::DeleteCriticalSection(&m_csShowingInternalUiThisPackage); 3670 ::DeleteCriticalSection(&m_csShowingInternalUiThisPackage);
3671 ReleaseObject(m_pTaskbarList); 3671 ReleaseObject(m_pTaskbarList);
3672 ReleaseDict(m_sdOverridableVariables); 3672 ReleaseDict(m_sdOverridableVariables);
3673 ReleaseDict(m_shPrereqSupportPackages);
3674 ReleaseMem(m_rgPrereqPackages);
3675 ReleaseStr(m_sczFailedMessage); 3673 ReleaseStr(m_sczFailedMessage);
3676 ReleaseStr(m_sczConfirmCloseMessage); 3674 ReleaseStr(m_sczConfirmCloseMessage);
3677 BalConditionsUninitialize(&m_Conditions); 3675 BalConditionsUninitialize(&m_Conditions);
@@ -3739,10 +3737,6 @@ private:
3739 3737
3740 STRINGDICT_HANDLE m_sdOverridableVariables; 3738 STRINGDICT_HANDLE m_sdOverridableVariables;
3741 3739
3742 WIXSTDBA_PREREQ_PACKAGE* m_rgPrereqPackages;
3743 DWORD m_cPrereqPackages;
3744 STRINGDICT_HANDLE m_shPrereqSupportPackages;
3745
3746 BOOL m_fPrereq; 3740 BOOL m_fPrereq;
3747 BOOL m_fPrereqInstalled; 3741 BOOL m_fPrereqInstalled;
3748 BOOL m_fPrereqAlreadyInstalled; 3742 BOOL m_fPrereqAlreadyInstalled;
diff --git a/src/wixstdba/packages.config b/src/wixstdba/packages.config
index 23b191d4..1b4c9487 100644
--- a/src/wixstdba/packages.config
+++ b/src/wixstdba/packages.config
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.15" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.16" targetFramework="native" />
5 <package id="WixToolset.BalUtil" version="4.0.19" targetFramework="native" /> 5 <package id="WixToolset.BalUtil" version="4.0.22" targetFramework="native" />
6 <package id="WixToolset.DUtil" version="4.0.18" targetFramework="native" /> 6 <package id="WixToolset.DUtil" version="4.0.23" targetFramework="native" />
7</packages> \ No newline at end of file 7</packages> \ No newline at end of file
diff --git a/src/wixstdba/wixstdba.mc b/src/wixstdba/wixstdba.mc
index 66aa9767..34f8f844 100644
--- a/src/wixstdba/wixstdba.mc
+++ b/src/wixstdba/wixstdba.mc
@@ -71,3 +71,10 @@ Language=English
71WIXSTDBA: Planned MSI feature: %2!ls! for %1!ls!, wixstdba requested: %3!hs!, bafunctions requested: %4!hs! 71WIXSTDBA: Planned MSI feature: %2!ls! for %1!ls!, wixstdba requested: %3!hs!, bafunctions requested: %4!hs!
72. 72.
73 73
74MessageId=7
75Severity=Success
76SymbolicName=MSG_WIXSTDBA_PLANNED_MSI_PACKAGE
77Language=English
78WIXSTDBA: Planned MSI package: %1!ls!, wixstdba requested: actionMsiProperty=%2!d!;uiLevel=%3!d!;disableExternalUiHandler=%4!hs!, bafunctions requested: actionMsiProperty=%5!d!;uiLevel=%6!d!;disableExternalUiHandler=%7!hs!
79.
80
diff --git a/src/wixstdba/wixstdba.vcxproj b/src/wixstdba/wixstdba.vcxproj
index ab15c62f..e97c4692 100644
--- a/src/wixstdba/wixstdba.vcxproj
+++ b/src/wixstdba/wixstdba.vcxproj
@@ -2,9 +2,9 @@
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props" Condition="Exists('..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" /> 5 <Import Project="..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props" Condition="Exists('..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" />
6 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" /> 6 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" />
7 <Import Project="..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" /> 7 <Import Project="..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" />
8 8
9 <ItemGroup Label="ProjectConfigurations"> 9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32"> 10 <ProjectConfiguration Include="Debug|Win32">
@@ -107,9 +107,9 @@ rc.exe -fo "$(OutDir)wixstdba.res" "$(IntDir)wixstdba.messages.rc"</Command>
107 <PropertyGroup> 107 <PropertyGroup>
108 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 108 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
109 </PropertyGroup> 109 </PropertyGroup>
110 <Error Condition="!Exists('..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BalUtil.4.0.19\build\WixToolset.BalUtil.props'))" /> 110 <Error Condition="!Exists('..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BalUtil.4.0.22\build\WixToolset.BalUtil.props'))" />
111 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.15\build\WixToolset.BootstrapperCore.Native.props'))" /> 111 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.16\build\WixToolset.BootstrapperCore.Native.props'))" />
112 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.18\build\WixToolset.DUtil.props'))" /> 112 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.23\build\WixToolset.DUtil.props'))" />
113 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" /> 113 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
114 </Target> 114 </Target>
115</Project> 115</Project>