aboutsummaryrefslogtreecommitdiff
path: root/src/test/burn/TestData
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/burn/TestData')
-rw-r--r--src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp35
-rw-r--r--src/test/burn/TestData/BAFunctionsTests/BundleAv1/BundleAv1.wxs9
-rw-r--r--src/test/burn/TestData/BAFunctionsTests/BundleAv2/BundleAv2.wxs9
-rw-r--r--src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp36
-rw-r--r--src/test/burn/TestData/Manual/BundleB/Bundle.wxs5
-rw-r--r--src/test/burn/TestData/Manual/BundleB/BundleB.wixproj7
-rw-r--r--src/test/burn/TestData/Manual/BundleB/BundleB.wxs4
-rw-r--r--src/test/burn/TestData/Manual/PackageA/PackageA.wixproj2
-rw-r--r--src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs7
-rw-r--r--src/test/burn/TestData/PrereqBaTests/BundleB/BundleB.wxs13
-rw-r--r--src/test/burn/TestData/PrereqBaTests/BundleB/bad.config9
-rw-r--r--src/test/burn/TestData/PrereqBaTests/BundleC/BundleC.wxs8
-rw-r--r--src/test/burn/TestData/PrereqBaTests/BundleD/BundleD.wxs12
-rw-r--r--src/test/burn/TestData/PrereqBaTests/BundleE/BundleE.wxs5
-rw-r--r--src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp37
-rw-r--r--src/test/burn/TestData/Templates/Bundle.wxs6
-rw-r--r--src/test/burn/TestData/TestBA/TestBAWixlib/NetCore6_Platform.wxi8
-rw-r--r--src/test/burn/TestData/TestBA/TestBAWixlib/TestBA.wxs11
-rw-r--r--src/test/burn/TestData/TestBA/TestBAWixlib/WixBA.wxs6
-rw-r--r--src/test/burn/TestData/TestBA/TestBAWixlib_x64/TestBA_x64.wxs11
-rw-r--r--src/test/burn/TestData/TestBA/TestBAWixlib_x64/WixBA_x64.wxs5
-rw-r--r--src/test/burn/TestData/UpdateBundleTests/BundleBv1/Bundle.wxs4
-rw-r--r--src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs2
23 files changed, 132 insertions, 119 deletions
diff --git a/src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp b/src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp
index 01750b4b..ba559b05 100644
--- a/src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp
+++ b/src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp
@@ -29,37 +29,28 @@ public: //IBootstrapperApplication
29 29
30 hr = BalGetRelatedBundleVariable(wzBundleId, STRING_VARIABLE, &wzValue); 30 hr = BalGetRelatedBundleVariable(wzBundleId, STRING_VARIABLE, &wzValue);
31 31
32 ExitOnFailure(hr, "Failed to get related bundle string variable."); 32 BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Retrieved related bundle variable with BAFunctions: AString = %ws, Error: 0x%x", wzValue, hr);
33
34 if (wzValue)
35 {
36 BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Retrieved related bundle variable with BAFunctions: AString = %ws", wzValue);
37 }
38 33
39 hr = BalGetRelatedBundleVariable(wzBundleId, NUMBER_VARIABLE, &wzValue); 34 hr = BalGetRelatedBundleVariable(wzBundleId, NUMBER_VARIABLE, &wzValue);
40 35
41 if (wzValue) 36 BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Retrieved related bundle variable with BAFunctions: ANumber = %ws, Error: 0x%x", wzValue, hr);
42 {
43 BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Retrieved related bundle variable with BAFunctions: ANumber = %ws", wzValue);
44 }
45 37
46 hr = __super::OnDetectRelatedBundle(wzBundleId, relationType, wzBundleTag, fPerMachine, wzVersion, fMissingFromCache, pfCancel); 38 hr = __super::OnDetectRelatedBundle(wzBundleId, relationType, wzBundleTag, fPerMachine, wzVersion, fMissingFromCache, pfCancel);
47 LExit: 39
48 ReleaseStr(wzValue); 40 ReleaseStr(wzValue);
49 return hr; 41 return hr;
50 } 42 }
43
51private: 44private:
52 45
53 46
54public: 47public:
55 // 48 //
56 // Constructor - initialize member variables. 49 // Constructor - initialize member variables.
57 // 50 //
58 CBafRelatedBundleVariableTesting( 51 CBafRelatedBundleVariableTesting(
59 __in HMODULE hModule, 52 __in HMODULE hModule
60 __in IBootstrapperEngine* pEngine, 53 ) : CBalBaseBAFunctions(hModule)
61 __in const BA_FUNCTIONS_CREATE_ARGS* pArgs
62 ) : CBalBaseBAFunctions(hModule, pEngine, pArgs)
63 { 54 {
64 } 55 }
65 56
@@ -82,21 +73,21 @@ HRESULT WINAPI CreateBAFunctions(
82{ 73{
83 HRESULT hr = S_OK; 74 HRESULT hr = S_OK;
84 CBafRelatedBundleVariableTesting* pBAFunctions = NULL; 75 CBafRelatedBundleVariableTesting* pBAFunctions = NULL;
85 IBootstrapperEngine* pEngine = NULL;
86 76
87 hr = BalInitializeFromCreateArgs(pArgs->pBootstrapperCreateArgs, &pEngine); 77 BalInitialize(pArgs->pEngine);
88 ExitOnFailure(hr, "Failed to initialize Bal.");
89 78
90 pBAFunctions = new CBafRelatedBundleVariableTesting(hModule, pEngine, pArgs); 79 pBAFunctions = new CBafRelatedBundleVariableTesting(hModule);
91 ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CBafRelatedBundleVariableTesting object."); 80 ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CBafRelatedBundleVariableTesting object.");
92 81
82 hr = pBAFunctions->OnCreate(pArgs->pEngine, pArgs->pCommand);
83 ExitOnFailure(hr, "Failed to create BA function");
84
93 pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc; 85 pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc;
94 pResults->pvBAFunctionsProcContext = pBAFunctions; 86 pResults->pvBAFunctionsProcContext = pBAFunctions;
95 pBAFunctions = NULL; 87 pBAFunctions = NULL;
96 88
97LExit: 89LExit:
98 ReleaseObject(pBAFunctions); 90 ReleaseObject(pBAFunctions);
99 ReleaseObject(pEngine);
100 91
101 return hr; 92 return hr;
102} 93}
diff --git a/src/test/burn/TestData/BAFunctionsTests/BundleAv1/BundleAv1.wxs b/src/test/burn/TestData/BAFunctionsTests/BundleAv1/BundleAv1.wxs
index 4aba7a2f..431ef3d1 100644
--- a/src/test/burn/TestData/BAFunctionsTests/BundleAv1/BundleAv1.wxs
+++ b/src/test/burn/TestData/BAFunctionsTests/BundleAv1/BundleAv1.wxs
@@ -1,15 +1,16 @@
1<!-- 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. --> 1<!-- 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 2
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
5 <Fragment> 4 <Fragment>
6 <BootstrapperApplication> 5 <PayloadGroup Id="override ExtraPayloads">
7 <Payload SourceFile="$(var.BafRelatedBundleVariableTesting.TargetPath)" bal:BAFunctions="yes" /> 6 <Payload SourceFile="$(var.BafRelatedBundleVariableTesting.TargetPath)" bal:BAFunctions="yes" />
8 </BootstrapperApplication> 7 </PayloadGroup>
8
9 <PackageGroup Id="BundlePackages"> 9 <PackageGroup Id="BundlePackages">
10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" /> 10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" />
11 </PackageGroup> 11 </PackageGroup>
12
12 <Variable Name="ANumber" bal:Overridable="yes" Value="42" Persisted="yes" /> 13 <Variable Name="ANumber" bal:Overridable="yes" Value="42" Persisted="yes" />
13 <Variable Name="AString" bal:Overridable="yes" Value="This is a test" Persisted="yes" /> 14 <Variable Name="AString" bal:Overridable="yes" Value="This is a test" Persisted="yes" />
14 </Fragment> 15 </Fragment>
15</Wix> 16</Wix>
diff --git a/src/test/burn/TestData/BAFunctionsTests/BundleAv2/BundleAv2.wxs b/src/test/burn/TestData/BAFunctionsTests/BundleAv2/BundleAv2.wxs
index 8608512c..9c512899 100644
--- a/src/test/burn/TestData/BAFunctionsTests/BundleAv2/BundleAv2.wxs
+++ b/src/test/burn/TestData/BAFunctionsTests/BundleAv2/BundleAv2.wxs
@@ -1,15 +1,16 @@
1<!-- 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. --> 1<!-- 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 2
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
5 <Fragment> 4 <Fragment>
6 <BootstrapperApplication> 5 <PayloadGroup Id="override ExtraPayloads">
7 <Payload SourceFile="$(var.BafRelatedBundleVariableTesting.TargetPath)" bal:BAFunctions="yes" /> 6 <Payload SourceFile="$(var.BafRelatedBundleVariableTesting.TargetPath)" bal:BAFunctions="yes" />
8 </BootstrapperApplication> 7 </PayloadGroup>
8
9 <PackageGroup Id="BundlePackages"> 9 <PackageGroup Id="BundlePackages">
10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv2.TargetPath)" /> 10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv2.TargetPath)" />
11 </PackageGroup> 11 </PackageGroup>
12
12 <Variable Name="ANumber" bal:Overridable="yes" Value="4242" Persisted="yes" /> 13 <Variable Name="ANumber" bal:Overridable="yes" Value="4242" Persisted="yes" />
13 <Variable Name="AString" bal:Overridable="yes" Value="This is a test v2" Persisted="yes" /> 14 <Variable Name="AString" bal:Overridable="yes" Value="This is a test v2" Persisted="yes" />
14 </Fragment> 15 </Fragment>
15</Wix> 16</Wix>
diff --git a/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp
index a2b8e041..29a5d7d5 100644
--- a/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp
+++ b/src/test/burn/TestData/Manual/BafThmutilTesting/BafThmUtilTesting.cpp
@@ -44,6 +44,16 @@ static void CALLBACK BafThmUtilTestingTraceError(
44class CBafThmUtilTesting : public CBalBaseBAFunctions 44class CBafThmUtilTesting : public CBalBaseBAFunctions
45{ 45{
46public: // IBAFunctions 46public: // IBAFunctions
47 virtual STDMETHODIMP OnCreate(
48 __in IBootstrapperEngine* pEngine,
49 __in BOOTSTRAPPER_COMMAND* pCommand
50 )
51 {
52 m_commandDisplay = pCommand->display;
53
54 return __super::OnCreate(pEngine, pCommand);
55 }
56
47 virtual STDMETHODIMP OnThemeControlLoading( 57 virtual STDMETHODIMP OnThemeControlLoading(
48 __in LPCWSTR wzName, 58 __in LPCWSTR wzName,
49 __inout BOOL* pfProcessed, 59 __inout BOOL* pfProcessed,
@@ -95,7 +105,7 @@ public: //IBootstrapperApplication
95 __inout BOOL* pfCancel 105 __inout BOOL* pfCancel
96 ) 106 )
97 { 107 {
98 if (BOOTSTRAPPER_DISPLAY_FULL <= m_command.display) 108 if (BOOTSTRAPPER_DISPLAY_FULL <= m_commandDisplay)
99 { 109 {
100 if (IDCANCEL == ::MessageBoxW(m_hwndParent, L"Shutdown requests should be denied right now.", L"OnExecuteBegin", MB_OKCANCEL)) 110 if (IDCANCEL == ::MessageBoxW(m_hwndParent, L"Shutdown requests should be denied right now.", L"OnExecuteBegin", MB_OKCANCEL))
101 { 111 {
@@ -184,7 +194,7 @@ private:
184 } 194 }
185 195
186 hr = ThemeCreateParentWindow(m_pBafTheme, 0, wc.lpszClassName, m_pBafTheme->sczCaption, m_pBafTheme->dwStyle, x, y, m_hwndParent, m_hModule, this, THEME_WINDOW_INITIAL_POSITION_CENTER_MONITOR_FROM_COORDINATES, &m_hWndBaf); 196 hr = ThemeCreateParentWindow(m_pBafTheme, 0, wc.lpszClassName, m_pBafTheme->sczCaption, m_pBafTheme->dwStyle, x, y, m_hwndParent, m_hModule, this, THEME_WINDOW_INITIAL_POSITION_CENTER_MONITOR_FROM_COORDINATES, &m_hWndBaf);
187 ExitOnFailure(hr, "Failed to create window."); 197 ExitOnFailure(hr, "Failed to create baf testing window.");
188 198
189 hr = S_OK; 199 hr = S_OK;
190 200
@@ -330,7 +340,7 @@ private:
330 { 340 {
331 HRESULT hr = S_OK; 341 HRESULT hr = S_OK;
332 BOOL fProcessed = FALSE; 342 BOOL fProcessed = FALSE;
333 343
334 for (DWORD iAssignControl = 0; iAssignControl < countof(vrgInitControls); ++iAssignControl) 344 for (DWORD iAssignControl = 0; iAssignControl < countof(vrgInitControls); ++iAssignControl)
335 { 345 {
336 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, pArgs->pThemeControl->sczName, -1, vrgInitControls[iAssignControl].wzName, -1)) 346 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, pArgs->pThemeControl->sczName, -1, vrgInitControls[iAssignControl].wzName, -1))
@@ -371,7 +381,7 @@ private:
371 } 381 }
372 382
373 break; 383 break;
374 384
375 case BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_STANDARD: 385 case BAFTHMUTILTESTING_CONTROL_PROGRESSBAR_STANDARD:
376 fProcessed = TRUE; 386 fProcessed = TRUE;
377 387
@@ -410,11 +420,10 @@ public:
410 // Constructor - initialize member variables. 420 // Constructor - initialize member variables.
411 // 421 //
412 CBafThmUtilTesting( 422 CBafThmUtilTesting(
413 __in HMODULE hModule, 423 __in HMODULE hModule
414 __in IBootstrapperEngine* pEngine, 424 ) : CBalBaseBAFunctions(hModule)
415 __in const BA_FUNCTIONS_CREATE_ARGS* pArgs
416 ) : CBalBaseBAFunctions(hModule, pEngine, pArgs)
417 { 425 {
426 m_commandDisplay = BOOTSTRAPPER_DISPLAY_UNKNOWN;
418 m_pBafTheme = NULL; 427 m_pBafTheme = NULL;
419 m_fRegistered = FALSE; 428 m_fRegistered = FALSE;
420 m_hWndBaf = NULL; 429 m_hWndBaf = NULL;
@@ -434,12 +443,12 @@ public:
434 } 443 }
435 444
436private: 445private:
446 BOOTSTRAPPER_DISPLAY m_commandDisplay;
437 THEME* m_pBafTheme; 447 THEME* m_pBafTheme;
438 BOOL m_fRegistered; 448 BOOL m_fRegistered;
439 HWND m_hWndBaf; 449 HWND m_hWndBaf;
440}; 450};
441 451
442
443HRESULT WINAPI CreateBAFunctions( 452HRESULT WINAPI CreateBAFunctions(
444 __in HMODULE hModule, 453 __in HMODULE hModule,
445 __in const BA_FUNCTIONS_CREATE_ARGS* pArgs, 454 __in const BA_FUNCTIONS_CREATE_ARGS* pArgs,
@@ -448,16 +457,20 @@ HRESULT WINAPI CreateBAFunctions(
448{ 457{
449 HRESULT hr = S_OK; 458 HRESULT hr = S_OK;
450 CBafThmUtilTesting* pBAFunctions = NULL; 459 CBafThmUtilTesting* pBAFunctions = NULL;
451 IBootstrapperEngine* pEngine = NULL;
452 460
453 DutilInitialize(&BafThmUtilTestingTraceError); 461 DutilInitialize(&BafThmUtilTestingTraceError);
454 462
463#if TODO_REWRITE
455 hr = BalInitializeFromCreateArgs(pArgs->pBootstrapperCreateArgs, &pEngine); 464 hr = BalInitializeFromCreateArgs(pArgs->pBootstrapperCreateArgs, &pEngine);
456 ExitOnFailure(hr, "Failed to initialize Bal."); 465 ExitOnFailure(hr, "Failed to initialize Bal.");
466#endif
457 467
458 pBAFunctions = new CBafThmUtilTesting(hModule, pEngine, pArgs); 468 pBAFunctions = new CBafThmUtilTesting(hModule);
459 ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CBafThmUtilTesting object."); 469 ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CBafThmUtilTesting object.");
460 470
471 hr = pBAFunctions->OnCreate(pArgs->pEngine, pArgs->pCommand);
472 ExitOnFailure(hr, "Failed to call OnCreate CPrereqBaf.");
473
461 pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc; 474 pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc;
462 pResults->pvBAFunctionsProcContext = pBAFunctions; 475 pResults->pvBAFunctionsProcContext = pBAFunctions;
463 pBAFunctions = NULL; 476 pBAFunctions = NULL;
@@ -466,7 +479,6 @@ HRESULT WINAPI CreateBAFunctions(
466 479
467LExit: 480LExit:
468 ReleaseObject(pBAFunctions); 481 ReleaseObject(pBAFunctions);
469 ReleaseObject(pEngine);
470 482
471 return hr; 483 return hr;
472} 484}
diff --git a/src/test/burn/TestData/Manual/BundleB/Bundle.wxs b/src/test/burn/TestData/Manual/BundleB/Bundle.wxs
index 615d4b1d..eea96895 100644
--- a/src/test/burn/TestData/Manual/BundleB/Bundle.wxs
+++ b/src/test/burn/TestData/Manual/BundleB/Bundle.wxs
@@ -30,9 +30,12 @@
30 <?elseif $(var.BA) = "hyperlinkLicense"?> 30 <?elseif $(var.BA) = "hyperlinkLicense"?>
31 <BootstrapperApplication> 31 <BootstrapperApplication>
32 <bal:WixStandardBootstrapperApplication LicenseUrl="" Theme="hyperlinkLicense" /> 32 <bal:WixStandardBootstrapperApplication LicenseUrl="" Theme="hyperlinkLicense" />
33 <PayloadGroupRef Id="BAPayloads" />
33 </BootstrapperApplication> 34 </BootstrapperApplication>
34 <?else?> 35 <?else?>
35 <BootstrapperApplicationRef Id="$(var.BA)" /> 36 <BootstrapperApplicationRef Id="$(var.BA)">
37 <PayloadGroupRef Id="BAPayloads" />
38 </BootstrapperApplicationRef>
36 <?endif?> 39 <?endif?>
37 40
38 <Chain> 41 <Chain>
diff --git a/src/test/burn/TestData/Manual/BundleB/BundleB.wixproj b/src/test/burn/TestData/Manual/BundleB/BundleB.wixproj
index c092f1fd..e7d029a3 100644
--- a/src/test/burn/TestData/Manual/BundleB/BundleB.wixproj
+++ b/src/test/burn/TestData/Manual/BundleB/BundleB.wixproj
@@ -6,6 +6,7 @@
6 <UpgradeCode>{5DE2F206-3C37-4265-81F7-095284E16B08}</UpgradeCode> 6 <UpgradeCode>{5DE2F206-3C37-4265-81F7-095284E16B08}</UpgradeCode>
7 <HarvestDirectoryAdditionalOptions>-generate payloadgroup</HarvestDirectoryAdditionalOptions> 7 <HarvestDirectoryAdditionalOptions>-generate payloadgroup</HarvestDirectoryAdditionalOptions>
8 </PropertyGroup> 8 </PropertyGroup>
9
9 <ItemGroup> 10 <ItemGroup>
10 <HarvestDirectory Include="BAPayloads"> 11 <HarvestDirectory Include="BAPayloads">
11 <ComponentGroupName>BAPayloads</ComponentGroupName> 12 <ComponentGroupName>BAPayloads</ComponentGroupName>
@@ -18,20 +19,24 @@
18 <Transforms>package.xslt</Transforms> 19 <Transforms>package.xslt</Transforms>
19 </HarvestDirectory> 20 </HarvestDirectory>
20 </ItemGroup> 21 </ItemGroup>
22
21 <ItemGroup> 23 <ItemGroup>
22 <ProjectReference Include="..\PackageA\PackageA.wixproj" /> 24 <ProjectReference Include="..\PackageA\PackageA.wixproj" />
23 </ItemGroup> 25 </ItemGroup>
26
24 <ItemGroup> 27 <ItemGroup>
25 <PackageReference Include="WixToolset.Heat" /> 28 <PackageReference Include="WixToolset.Heat" />
26 <PackageReference Include="WixToolset.Bal.wixext" /> 29 <PackageReference Include="WixToolset.Bal.wixext" />
27 </ItemGroup> 30 </ItemGroup>
31
28 <!-- We do this dynamically to avoid committing so many files to source control. --> 32 <!-- We do this dynamically to avoid committing so many files to source control. -->
29 <Target Name="CreateThousandsOfFiles" AfterTargets="BeforeBuild"> 33 <Target Name="CreateThousandsOfFiles" AfterTargets="BeforeBuild">
30 <Exec Command='"$(BaseOutputPath)$(Configuration)\net6.0\win-x86\testexe.exe" /gf "BAPayloads|10000' WorkingDirectory="$(MSBuildProjectDirectory)" /> 34 <Exec Command='"$(BaseOutputPath)$(Configuration)\net6.0\win-x86\testexe.exe" /gf "BAPayloads|10000' WorkingDirectory="$(MSBuildProjectDirectory)" />
31 <Exec Command='"$(BaseOutputPath)$(Configuration)\net6.0\win-x86\testexe.exe" /gf "PackagePayloads|10000' WorkingDirectory="$(MSBuildProjectDirectory)" /> 35 <Exec Command='"$(BaseOutputPath)$(Configuration)\net6.0\win-x86\testexe.exe" /gf "PackagePayloads|10000' WorkingDirectory="$(MSBuildProjectDirectory)" />
32 </Target> 36 </Target>
37
33 <Target Name="DeleteThousandsOfFiles" AfterTargets="AfterBuild"> 38 <Target Name="DeleteThousandsOfFiles" AfterTargets="AfterBuild">
34 <RemoveDir Directories="$(MSBuildProjectDirectory)\BAPayloads" /> 39 <RemoveDir Directories="$(MSBuildProjectDirectory)\BAPayloads" />
35 <RemoveDir Directories="$(MSBuildProjectDirectory)\PackagePayloads" /> 40 <RemoveDir Directories="$(MSBuildProjectDirectory)\PackagePayloads" />
36 </Target> 41 </Target>
37</Project> \ No newline at end of file 42</Project>
diff --git a/src/test/burn/TestData/Manual/BundleB/BundleB.wxs b/src/test/burn/TestData/Manual/BundleB/BundleB.wxs
index 3b189b15..54082131 100644
--- a/src/test/burn/TestData/Manual/BundleB/BundleB.wxs
+++ b/src/test/burn/TestData/Manual/BundleB/BundleB.wxs
@@ -1,11 +1,7 @@
1<!-- 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. --> 1<!-- 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 2
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
5 <Fragment> 4 <Fragment>
6 <BootstrapperApplication>
7 <PayloadGroupRef Id="BAPayloads" />
8 </BootstrapperApplication>
9 <PackageGroup Id="BundlePackages"> 5 <PackageGroup Id="BundlePackages">
10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageA.TargetPath)"> 6 <MsiPackage Id="PackageA" SourceFile="$(var.PackageA.TargetPath)">
11 <PayloadGroupRef Id="PackagePayloads" /> 7 <PayloadGroupRef Id="PackagePayloads" />
diff --git a/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj b/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj
index 61dc27ab..f16c2038 100644
--- a/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj
+++ b/src/test/burn/TestData/Manual/PackageA/PackageA.wixproj
@@ -10,4 +10,4 @@
10 <ItemGroup> 10 <ItemGroup>
11 <PackageReference Include="WixToolset.Util.wixext" /> 11 <PackageReference Include="WixToolset.Util.wixext" />
12 </ItemGroup> 12 </ItemGroup>
13</Project> \ No newline at end of file 13</Project>
diff --git a/src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs b/src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs
index 6073e09f..f56a7f8a 100644
--- a/src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs
+++ b/src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs
@@ -3,15 +3,16 @@
3 3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> 4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
5 <Fragment> 5 <Fragment>
6 <BootstrapperApplication Id="BrokenDnc"> 6 <BootstrapperApplication Id="BrokenDnc" SourceFile="!(bindpath.dncx86)\TestBA.exe" Secondary="yes">
7 <Payload SourceFile="!(bindpath.dncx86)\TestBA.deps.json" /> 7 <Payload SourceFile="!(bindpath.dncx86)\TestBA.deps.json" />
8 <Payload SourceFile="!(bindpath.dncx86)\TestBA.dll" bal:BAFactoryAssembly="yes" /> 8 <Payload SourceFile="!(bindpath.dncx86)\TestBA.dll" />
9 <Payload Name="good.runtimeconfig.json" SourceFile="!(bindpath.dncx86)\TestBA.runtimeconfig.json" /> 9 <Payload Name="good.runtimeconfig.json" SourceFile="!(bindpath.dncx86)\TestBA.runtimeconfig.json" />
10 <Payload Name="TestBA.runtimeconfig.json" SourceFile="bad.runtimeconfig.json" /> 10 <Payload Name="TestBA.runtimeconfig.json" SourceFile="bad.runtimeconfig.json" />
11 <Payload SourceFile="!(bindpath.dncx86)\mbanative.dll" /> 11 <Payload SourceFile="!(bindpath.dncx86)\mbanative.dll" />
12 <Payload SourceFile="!(bindpath.dncx86)\WixToolset.Mba.Core.dll" /> 12 <Payload SourceFile="!(bindpath.dncx86)\WixToolset.Mba.Core.dll" />
13 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" /> 13 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" />
14 <bal:WixDotNetCoreBootstrapperApplicationHost /> 14
15 <bal:WixPrerequisiteBootstrapperApplication />
15 </BootstrapperApplication> 16 </BootstrapperApplication>
16 </Fragment> 17 </Fragment>
17 18
diff --git a/src/test/burn/TestData/PrereqBaTests/BundleB/BundleB.wxs b/src/test/burn/TestData/PrereqBaTests/BundleB/BundleB.wxs
index b7742582..87b8be36 100644
--- a/src/test/burn/TestData/PrereqBaTests/BundleB/BundleB.wxs
+++ b/src/test/burn/TestData/PrereqBaTests/BundleB/BundleB.wxs
@@ -3,14 +3,15 @@
3 3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> 4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
5 <Fragment> 5 <Fragment>
6 <BootstrapperApplication Id="BrokenMba"> 6 <BootstrapperApplication Id="BrokenMba" SourceFile="!(bindpath.net2x86)\TestBA.exe"
7 <Payload Name="good.config" SourceFile="!(bindpath.net2x86)\TestBA.BootstrapperCore.config" /> 7 Secondary="yes">
8 <Payload Name="WixToolset.Mba.Host.config" SourceFile="bad.config" /> 8 <Payload Name="good.config" SourceFile="!(bindpath.net2x86)\TestBA.exe.config" />
9 <Payload SourceFile="!(bindpath.net2x86)\TestBA.dll" /> 9 <Payload Name="TestBA.exe.config" SourceFile="bad.config" />
10 <Payload SourceFile="!(bindpath.net2x86)\mbanative.dll" /> 10 <Payload SourceFile="!(bindpath.net2x86)\mbanative.dll" />
11 <Payload SourceFile="!(bindpath.net2x86)\WixToolset.Mba.Core.dll" /> 11 <Payload SourceFile="!(bindpath.net2x86)\WixToolset.Mba.Core.dll" />
12 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" /> 12 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" />
13 <bal:WixManagedBootstrapperApplicationHost /> 13
14 <bal:WixPrerequisiteBootstrapperApplication />
14 </BootstrapperApplication> 15 </BootstrapperApplication>
15 </Fragment> 16 </Fragment>
16 17
@@ -21,7 +22,7 @@
21 <PackageGroup Id="BundlePackages"> 22 <PackageGroup Id="BundlePackages">
22 <ExePackage SourceFile="$(var.ReplaceConfig.TargetPath)" bal:PrereqPackage="yes" 23 <ExePackage SourceFile="$(var.ReplaceConfig.TargetPath)" bal:PrereqPackage="yes"
23 Permanent="yes" DetectCondition="NOT GoodConfigPresent OR CAUSEINFINITELOOP = 1" 24 Permanent="yes" DetectCondition="NOT GoodConfigPresent OR CAUSEINFINITELOOP = 1"
24 InstallArguments="&quot;[BARuntimeDirectory]WixToolset.Mba.Host.config&quot; &quot;[BARuntimeDirectory]good.config&quot; &quot;[BARuntimeDirectory]bad.config&quot;" /> 25 InstallArguments="&quot;[BARuntimeDirectory]TestBA.exe.config&quot; &quot;[BARuntimeDirectory]good.config&quot; &quot;[BARuntimeDirectory]bad.config&quot;" />
25 <MsiPackage Id="PackageB" SourceFile="$(var.PackageB.TargetPath)" bal:PrereqPackage="yes" Permanent="yes" /> 26 <MsiPackage Id="PackageB" SourceFile="$(var.PackageB.TargetPath)" bal:PrereqPackage="yes" Permanent="yes" />
26 <MsiPackage Id="PackageC" SourceFile="$(var.PackageC.TargetPath)" /> 27 <MsiPackage Id="PackageC" SourceFile="$(var.PackageC.TargetPath)" />
27 </PackageGroup> 28 </PackageGroup>
diff --git a/src/test/burn/TestData/PrereqBaTests/BundleB/bad.config b/src/test/burn/TestData/PrereqBaTests/BundleB/bad.config
index 1512e59a..ff3530f6 100644
--- a/src/test/burn/TestData/PrereqBaTests/BundleB/bad.config
+++ b/src/test/burn/TestData/PrereqBaTests/BundleB/bad.config
@@ -1,17 +1,8 @@
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 3
4
5<configuration> 4<configuration>
6 <configSections>
7 <sectionGroup name="wix.bootstrapper" type="WixToolset.Mba.Host.BootstrapperSectionGroup, WixToolset.Mba.Host">
8 <section name="host" type="WixToolset.Mba.Host.HostSection, WixToolset.Mba.Host" />
9 </sectionGroup>
10 </configSections>
11 <startup> 5 <startup>
12 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v5.8" /> 6 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v5.8" />
13 </startup> 7 </startup>
14 <wix.bootstrapper>
15 <host assemblyName="TestBA" />
16 </wix.bootstrapper>
17</configuration> 8</configuration>
diff --git a/src/test/burn/TestData/PrereqBaTests/BundleC/BundleC.wxs b/src/test/burn/TestData/PrereqBaTests/BundleC/BundleC.wxs
index fe9425f7..9bf7932b 100644
--- a/src/test/burn/TestData/PrereqBaTests/BundleC/BundleC.wxs
+++ b/src/test/burn/TestData/PrereqBaTests/BundleC/BundleC.wxs
@@ -1,17 +1,17 @@
1<!-- 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. --> 1<!-- 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 2
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> 3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
5 <Fragment> 4 <Fragment>
6 <BootstrapperApplication Id="BrokenDncAlwaysPrereq"> 5 <BootstrapperApplication Id="BrokenDncAlwaysPrereq" SourceFile="!(bindpath.dncx86)\TestBA.exe" Secondary="true">
7 <Payload SourceFile="!(bindpath.dncx86)\TestBA.deps.json" /> 6 <Payload SourceFile="!(bindpath.dncx86)\TestBA.deps.json" />
8 <Payload SourceFile="!(bindpath.dncx86)\TestBA.dll" bal:BAFactoryAssembly="yes" /> 7 <Payload SourceFile="!(bindpath.dncx86)\TestBA.dll" />
9 <Payload Name="good.runtimeconfig.json" SourceFile="!(bindpath.dncx86)\TestBA.runtimeconfig.json" /> 8 <Payload Name="good.runtimeconfig.json" SourceFile="!(bindpath.dncx86)\TestBA.runtimeconfig.json" />
10 <Payload Name="TestBA.runtimeconfig.json" SourceFile="bad.runtimeconfig.json" /> 9 <Payload Name="TestBA.runtimeconfig.json" SourceFile="bad.runtimeconfig.json" />
11 <Payload SourceFile="!(bindpath.dncx86)\mbanative.dll" /> 10 <Payload SourceFile="!(bindpath.dncx86)\mbanative.dll" />
12 <Payload SourceFile="!(bindpath.dncx86)\WixToolset.Mba.Core.dll" /> 11 <Payload SourceFile="!(bindpath.dncx86)\WixToolset.Mba.Core.dll" />
13 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" /> 12 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" />
14 <bal:WixDotNetCoreBootstrapperApplicationHost AlwaysInstallPrereqs="yes" /> 13
14 <bal:WixPrerequisiteBootstrapperApplication />
15 </BootstrapperApplication> 15 </BootstrapperApplication>
16 </Fragment> 16 </Fragment>
17 17
diff --git a/src/test/burn/TestData/PrereqBaTests/BundleD/BundleD.wxs b/src/test/burn/TestData/PrereqBaTests/BundleD/BundleD.wxs
index 0e866295..68baba22 100644
--- a/src/test/burn/TestData/PrereqBaTests/BundleD/BundleD.wxs
+++ b/src/test/burn/TestData/PrereqBaTests/BundleD/BundleD.wxs
@@ -3,14 +3,14 @@
3 3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> 4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
5 <Fragment> 5 <Fragment>
6 <BootstrapperApplication Id="BrokenMbaAlwaysPrereq"> 6 <BootstrapperApplication Id="BrokenMbaAlwaysPrereq" SourceFile="!(bindpath.net2x86)\TestBA.exe" Secondary="true">
7 <Payload Name="good.config" SourceFile="!(bindpath.net2x86)\TestBA.BootstrapperCore.config" /> 7 <Payload Name="good.config" SourceFile="!(bindpath.net2x86)\TestBA.exe.config" />
8 <Payload Name="WixToolset.Mba.Host.config" SourceFile="bad.config" /> 8 <Payload Name="TestBA.exe.config" SourceFile="bad.config" />
9 <Payload SourceFile="!(bindpath.net2x86)\TestBA.dll" />
10 <Payload SourceFile="!(bindpath.net2x86)\mbanative.dll" /> 9 <Payload SourceFile="!(bindpath.net2x86)\mbanative.dll" />
11 <Payload SourceFile="!(bindpath.net2x86)\WixToolset.Mba.Core.dll" /> 10 <Payload SourceFile="!(bindpath.net2x86)\WixToolset.Mba.Core.dll" />
12 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" /> 11 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" />
13 <bal:WixManagedBootstrapperApplicationHost AlwaysInstallPrereqs="yes" /> 12
13 <bal:WixPrerequisiteBootstrapperApplication />
14 </BootstrapperApplication> 14 </BootstrapperApplication>
15 </Fragment> 15 </Fragment>
16 16
@@ -21,7 +21,7 @@
21 <PackageGroup Id="BundlePackages"> 21 <PackageGroup Id="BundlePackages">
22 <ExePackage SourceFile="$(var.ReplaceConfig.TargetPath)" bal:PrereqPackage="yes" 22 <ExePackage SourceFile="$(var.ReplaceConfig.TargetPath)" bal:PrereqPackage="yes"
23 Permanent="yes" DetectCondition="NOT GoodConfigPresent OR CAUSEINFINITELOOP = 1" 23 Permanent="yes" DetectCondition="NOT GoodConfigPresent OR CAUSEINFINITELOOP = 1"
24 InstallArguments="&quot;[BARuntimeDirectory]WixToolset.Mba.Host.config&quot; &quot;[BARuntimeDirectory]good.config&quot; &quot;[BARuntimeDirectory]bad.config&quot;" /> 24 InstallArguments="&quot;[BARuntimeDirectory]TestBA.exe.config&quot; &quot;[BARuntimeDirectory]good.config&quot; &quot;[BARuntimeDirectory]bad.config&quot;" />
25 <MsiPackage Id="PackageB" SourceFile="$(var.PackageB.TargetPath)" bal:PrereqPackage="yes" Permanent="yes" /> 25 <MsiPackage Id="PackageB" SourceFile="$(var.PackageB.TargetPath)" bal:PrereqPackage="yes" Permanent="yes" />
26 <MsiPackage Id="PackageC" SourceFile="$(var.PackageC.TargetPath)" /> 26 <MsiPackage Id="PackageC" SourceFile="$(var.PackageC.TargetPath)" />
27 </PackageGroup> 27 </PackageGroup>
diff --git a/src/test/burn/TestData/PrereqBaTests/BundleE/BundleE.wxs b/src/test/burn/TestData/PrereqBaTests/BundleE/BundleE.wxs
index 5f2e6a75..4855c66e 100644
--- a/src/test/burn/TestData/PrereqBaTests/BundleE/BundleE.wxs
+++ b/src/test/burn/TestData/PrereqBaTests/BundleE/BundleE.wxs
@@ -3,14 +3,13 @@
3 3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> 4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
5 <Fragment> 5 <Fragment>
6 <BootstrapperApplication Id="DncAlwaysPrereq"> 6 <BootstrapperApplication Id="DncAlwaysPrereq" SourceFile="!(bindpath.dncx86)\TestBA.exe">
7 <Payload SourceFile="!(bindpath.dncx86)\TestBA.deps.json" /> 7 <Payload SourceFile="!(bindpath.dncx86)\TestBA.deps.json" />
8 <Payload SourceFile="!(bindpath.dncx86)\TestBA.dll" bal:BAFactoryAssembly="yes" /> 8 <Payload SourceFile="!(bindpath.dncx86)\TestBA.dll" />
9 <Payload SourceFile="!(bindpath.dncx86)\TestBA.runtimeconfig.json" /> 9 <Payload SourceFile="!(bindpath.dncx86)\TestBA.runtimeconfig.json" />
10 <Payload SourceFile="!(bindpath.dncx86)\mbanative.dll" /> 10 <Payload SourceFile="!(bindpath.dncx86)\mbanative.dll" />
11 <Payload SourceFile="!(bindpath.dncx86)\WixToolset.Mba.Core.dll" /> 11 <Payload SourceFile="!(bindpath.dncx86)\WixToolset.Mba.Core.dll" />
12 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" /> 12 <Payload SourceFile="$(var.PrereqBaf.TargetPath)" bal:BAFunctions="yes" />
13 <bal:WixDotNetCoreBootstrapperApplicationHost AlwaysInstallPrereqs="yes" />
14 </BootstrapperApplication> 13 </BootstrapperApplication>
15 </Fragment> 14 </Fragment>
16 15
diff --git a/src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp b/src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp
index 35949eb9..c93f9d3f 100644
--- a/src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp
+++ b/src/test/burn/TestData/PrereqBaTests/PrereqBaf/PrereqBaf.cpp
@@ -9,6 +9,22 @@ class CPrereqBaf : public CBalBaseBAFunctions
9public: // IBAFunctions 9public: // IBAFunctions
10 10
11public: //IBootstrapperApplication 11public: //IBootstrapperApplication
12 STDMETHODIMP OnCreate(
13 __in IBootstrapperEngine* pEngine,
14 __in BOOTSTRAPPER_COMMAND* pCommand
15 )
16 {
17 HRESULT hr = S_OK;
18
19 hr = __super::OnCreate(pEngine, pCommand);
20 ExitOnFailure(hr, "CBalBaseBootstrapperApplication initialization failed.");
21
22 hr = StrAllocString(&m_sczBARuntimeDirectory, pCommand->wzBootstrapperWorkingFolder, 0);
23 ExitOnFailure(hr, "Failed to copy working folder");
24
25 LExit:
26 return hr;
27 }
12 28
13 virtual STDMETHODIMP OnDetectBegin( 29 virtual STDMETHODIMP OnDetectBegin(
14 __in BOOL /*fCached*/, 30 __in BOOL /*fCached*/,
@@ -19,7 +35,7 @@ public: //IBootstrapperApplication
19 { 35 {
20 HRESULT hr = S_OK; 36 HRESULT hr = S_OK;
21 37
22 hr = m_pEngine->SetVariableString(L"BARuntimeDirectory", m_command.wzBootstrapperWorkingFolder, FALSE); 38 hr = m_pEngine->SetVariableString(L"BARuntimeDirectory", m_sczBARuntimeDirectory, FALSE);
23 ExitOnFailure(hr, "Failed to set BARuntimeDirectory"); 39 ExitOnFailure(hr, "Failed to set BARuntimeDirectory");
24 40
25 LExit: 41 LExit:
@@ -33,11 +49,10 @@ public:
33 // Constructor - initialize member variables. 49 // Constructor - initialize member variables.
34 // 50 //
35 CPrereqBaf( 51 CPrereqBaf(
36 __in HMODULE hModule, 52 __in HMODULE hModule
37 __in IBootstrapperEngine* pEngine, 53 ) : CBalBaseBAFunctions(hModule)
38 __in const BA_FUNCTIONS_CREATE_ARGS* pArgs
39 ) : CBalBaseBAFunctions(hModule, pEngine, pArgs)
40 { 54 {
55 m_sczBARuntimeDirectory = NULL;
41 } 56 }
42 57
43 // 58 //
@@ -45,9 +60,11 @@ public:
45 // 60 //
46 ~CPrereqBaf() 61 ~CPrereqBaf()
47 { 62 {
63 ReleaseNullStr(m_sczBARuntimeDirectory);
48 } 64 }
49 65
50private: 66private:
67 LPWSTR m_sczBARuntimeDirectory;
51}; 68};
52 69
53 70
@@ -59,21 +76,21 @@ HRESULT WINAPI CreateBAFunctions(
59{ 76{
60 HRESULT hr = S_OK; 77 HRESULT hr = S_OK;
61 CPrereqBaf* pBAFunctions = NULL; 78 CPrereqBaf* pBAFunctions = NULL;
62 IBootstrapperEngine* pEngine = NULL;
63 79
64 hr = BalInitializeFromCreateArgs(pArgs->pBootstrapperCreateArgs, &pEngine); 80 BalInitialize(pArgs->pEngine);
65 ExitOnFailure(hr, "Failed to initialize Bal.");
66 81
67 pBAFunctions = new CPrereqBaf(hModule, pEngine, pArgs); 82 pBAFunctions = new CPrereqBaf(hModule);
68 ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CPrereqBaf object."); 83 ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CPrereqBaf object.");
69 84
85 hr = pBAFunctions->OnCreate(pArgs->pEngine, pArgs->pCommand);
86 ExitOnFailure(hr, "Failed to call OnCreate CPrereqBaf.");
87
70 pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc; 88 pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc;
71 pResults->pvBAFunctionsProcContext = pBAFunctions; 89 pResults->pvBAFunctionsProcContext = pBAFunctions;
72 pBAFunctions = NULL; 90 pBAFunctions = NULL;
73 91
74LExit: 92LExit:
75 ReleaseObject(pBAFunctions); 93 ReleaseObject(pBAFunctions);
76 ReleaseObject(pEngine);
77 94
78 return hr; 95 return hr;
79} 96}
diff --git a/src/test/burn/TestData/Templates/Bundle.wxs b/src/test/burn/TestData/Templates/Bundle.wxs
index 43974524..ee3b5f4e 100644
--- a/src/test/burn/TestData/Templates/Bundle.wxs
+++ b/src/test/burn/TestData/Templates/Bundle.wxs
@@ -32,6 +32,7 @@
32 <?elseif $(var.BA) = "hyperlinkLicense"?> 32 <?elseif $(var.BA) = "hyperlinkLicense"?>
33 <BootstrapperApplication> 33 <BootstrapperApplication>
34 <bal:WixStandardBootstrapperApplication LicenseUrl="" Theme="hyperlinkLicense" /> 34 <bal:WixStandardBootstrapperApplication LicenseUrl="" Theme="hyperlinkLicense" />
35 <PayloadGroupRef Id="ExtraPayloads" />
35 </BootstrapperApplication> 36 </BootstrapperApplication>
36 <?elseif $(var.BA) = "iui"?> 37 <?elseif $(var.BA) = "iui"?>
37 <BootstrapperApplication> 38 <BootstrapperApplication>
@@ -59,4 +60,9 @@
59 <PackageGroupRef Id="BundlePackages" /> 60 <PackageGroupRef Id="BundlePackages" />
60 </Chain> 61 </Chain>
61 </Bundle> 62 </Bundle>
63
64 <Fragment>
65 <PayloadGroup Id="virtual ExtraPayloads" />
66 </Fragment>
67
62</Wix> 68</Wix>
diff --git a/src/test/burn/TestData/TestBA/TestBAWixlib/NetCore6_Platform.wxi b/src/test/burn/TestData/TestBA/TestBAWixlib/NetCore6_Platform.wxi
index c09c3624..e3458815 100644
--- a/src/test/burn/TestData/TestBA/TestBAWixlib/NetCore6_Platform.wxi
+++ b/src/test/burn/TestData/TestBA/TestBAWixlib/NetCore6_Platform.wxi
@@ -35,7 +35,7 @@
35 <PackageGroupRef Id="$(var.AspNetCoreRedistId)" /> 35 <PackageGroupRef Id="$(var.AspNetCoreRedistId)" />
36 </PackageGroup> 36 </PackageGroup>
37 37
38 <bal:ManagedBootstrapperApplicationPrereqInformation PackageId="$(var.AspNetCoreRedistId)" LicenseUrl="$(var.NetCoreEulaLink)" /> 38 <bal:BootstrapperApplicationPrerequisiteInformation PackageId="$(var.AspNetCoreRedistId)" LicenseUrl="$(var.NetCoreEulaLink)" />
39 </Fragment> 39 </Fragment>
40 40
41 <Fragment> 41 <Fragment>
@@ -43,7 +43,7 @@
43 <PackageGroupRef Id="$(var.DesktopNetCoreRedistId)" /> 43 <PackageGroupRef Id="$(var.DesktopNetCoreRedistId)" />
44 </PackageGroup> 44 </PackageGroup>
45 45
46 <bal:ManagedBootstrapperApplicationPrereqInformation PackageId="$(var.DesktopNetCoreRedistId)" LicenseUrl="$(var.NetCoreEulaLink)" /> 46 <bal:BootstrapperApplicationPrerequisiteInformation PackageId="$(var.DesktopNetCoreRedistId)" LicenseUrl="$(var.NetCoreEulaLink)" />
47 </Fragment> 47 </Fragment>
48 48
49 <Fragment> 49 <Fragment>
@@ -51,7 +51,7 @@
51 <PackageGroupRef Id="$(var.DotNetCoreRedistId)" /> 51 <PackageGroupRef Id="$(var.DotNetCoreRedistId)" />
52 </PackageGroup> 52 </PackageGroup>
53 53
54 <bal:ManagedBootstrapperApplicationPrereqInformation PackageId="$(var.DotNetCoreRedistId)" LicenseUrl="$(var.NetCoreEulaLink)" /> 54 <bal:BootstrapperApplicationPrerequisiteInformation PackageId="$(var.DotNetCoreRedistId)" LicenseUrl="$(var.NetCoreEulaLink)" />
55 </Fragment> 55 </Fragment>
56 56
57 <Fragment> 57 <Fragment>
@@ -59,6 +59,6 @@
59 <PackageGroupRef Id="$(var.DotNetCoreSdkRedistId)" /> 59 <PackageGroupRef Id="$(var.DotNetCoreSdkRedistId)" />
60 </PackageGroup> 60 </PackageGroup>
61 61
62 <bal:ManagedBootstrapperApplicationPrereqInformation PackageId="$(var.DotNetCoreSdkRedistId)" LicenseUrl="$(var.NetCoreEulaLink)" /> 62 <bal:BootstrapperApplicationPrerequisiteInformation PackageId="$(var.DotNetCoreSdkRedistId)" LicenseUrl="$(var.NetCoreEulaLink)" />
63 </Fragment> 63 </Fragment>
64</Include> 64</Include>
diff --git a/src/test/burn/TestData/TestBA/TestBAWixlib/TestBA.wxs b/src/test/burn/TestData/TestBA/TestBAWixlib/TestBA.wxs
index 2db22e4b..98c3acb2 100644
--- a/src/test/burn/TestData/TestBA/TestBAWixlib/TestBA.wxs
+++ b/src/test/burn/TestData/TestBA/TestBAWixlib/TestBA.wxs
@@ -1,13 +1,12 @@
1<!-- 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. --> 1<!-- 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<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
3 <Fragment> 3 <Fragment>
4 <BootstrapperApplication> 4 <BootstrapperApplication SourceFile="!(bindpath.dncx86)\TestBA.exe">
5 <Payload SourceFile="!(bindpath.dncx86)\TestBA.deps.json" /> 5 <Payload SourceFile="!(bindpath.dncx86)\TestBA.deps.json" />
6 <Payload SourceFile="!(bindpath.dncx86)\TestBA.dll" bal:BAFactoryAssembly="yes" /> 6 <Payload SourceFile="!(bindpath.dncx86)\TestBA.dll" />
7 <Payload SourceFile="!(bindpath.dncx86)\TestBA.runtimeconfig.json" /> 7 <Payload SourceFile="!(bindpath.dncx86)\TestBA.runtimeconfig.json" />
8 <Payload SourceFile="!(bindpath.dncx86)\mbanative.dll" /> 8 <Payload SourceFile="!(bindpath.dncx86)\mbanative.dll" />
9 <Payload SourceFile="!(bindpath.dncx86)\WixToolset.Mba.Core.dll" /> 9 <Payload SourceFile="!(bindpath.dncx86)\WixToolset.Mba.Core.dll" />
10 <bal:WixDotNetCoreBootstrapperApplicationHost />
11 </BootstrapperApplication> 10 </BootstrapperApplication>
12 11
13 <PackageGroup Id="TestBAdnc"> 12 <PackageGroup Id="TestBAdnc">
@@ -15,12 +14,10 @@
15 </PackageGroup> 14 </PackageGroup>
16 </Fragment> 15 </Fragment>
17 <Fragment> 16 <Fragment>
18 <BootstrapperApplication> 17 <BootstrapperApplication SourceFile="!(bindpath.net2x86)\TestBA.exe">
19 <Payload Name="WixToolset.Mba.Host.config" SourceFile="!(bindpath.net2x86)\TestBA.BootstrapperCore.config" /> 18 <Payload SourceFile="!(bindpath.net2x86)\TestBA.exe.config" />
20 <Payload SourceFile="!(bindpath.net2x86)\TestBA.dll" />
21 <Payload SourceFile="!(bindpath.net2x86)\mbanative.dll" /> 19 <Payload SourceFile="!(bindpath.net2x86)\mbanative.dll" />
22 <Payload SourceFile="!(bindpath.net2x86)\WixToolset.Mba.Core.dll" /> 20 <Payload SourceFile="!(bindpath.net2x86)\WixToolset.Mba.Core.dll" />
23 <bal:WixManagedBootstrapperApplicationHost />
24 </BootstrapperApplication> 21 </BootstrapperApplication>
25 22
26 <PackageGroup Id="TestBA"> 23 <PackageGroup Id="TestBA">
diff --git a/src/test/burn/TestData/TestBA/TestBAWixlib/WixBA.wxs b/src/test/burn/TestData/TestBA/TestBAWixlib/WixBA.wxs
index c6da2a17..3d4eb274 100644
--- a/src/test/burn/TestData/TestBA/TestBAWixlib/WixBA.wxs
+++ b/src/test/burn/TestData/TestBA/TestBAWixlib/WixBA.wxs
@@ -1,13 +1,11 @@
1<!-- 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. --> 1<!-- 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<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
3 <Fragment> 3 <Fragment>
4 <BootstrapperApplication> 4 <BootstrapperApplication SourceFile="!(bindpath.net4x86)\WixToolset.WixBA.exe">
5 <Payload Name="WixToolset.Mba.Host.config" SourceFile="!(bindpath.net4x86)\WixBA.BootstrapperCore.config" /> 5 <Payload SourceFile="!(bindpath.net4x86)\WixToolset.WixBA.exe.config" />
6 <Payload SourceFile="!(bindpath.net4x86)\WixToolset.WixBA.dll" />
7 <Payload SourceFile="!(bindpath.net4x86)\mbanative.dll" /> 6 <Payload SourceFile="!(bindpath.net4x86)\mbanative.dll" />
8 <Payload SourceFile="!(bindpath.net4x86)\WixToolset.Mba.Core.dll" /> 7 <Payload SourceFile="!(bindpath.net4x86)\WixToolset.Mba.Core.dll" />
9 <Payload SourceFile='..\..\..\..\..\..\License.txt' /> 8 <Payload SourceFile='..\..\..\..\..\..\License.txt' />
10 <bal:WixManagedBootstrapperApplicationHost />
11 </BootstrapperApplication> 9 </BootstrapperApplication>
12 10
13 <PackageGroup Id="WixBA"> 11 <PackageGroup Id="WixBA">
diff --git a/src/test/burn/TestData/TestBA/TestBAWixlib_x64/TestBA_x64.wxs b/src/test/burn/TestData/TestBA/TestBAWixlib_x64/TestBA_x64.wxs
index f6a6382b..08d428a1 100644
--- a/src/test/burn/TestData/TestBA/TestBAWixlib_x64/TestBA_x64.wxs
+++ b/src/test/burn/TestData/TestBA/TestBAWixlib_x64/TestBA_x64.wxs
@@ -1,13 +1,12 @@
1<!-- 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. --> 1<!-- 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<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
3 <Fragment> 3 <Fragment>
4 <BootstrapperApplication> 4 <BootstrapperApplication SourceFile="!(bindpath.dncx64)\TestBA.exe">
5 <Payload SourceFile="!(bindpath.dncx64)\TestBA.deps.json" /> 5 <Payload SourceFile="!(bindpath.dncx64)\TestBA.deps.json" />
6 <Payload SourceFile="!(bindpath.dncx64)\TestBA.dll" bal:BAFactoryAssembly="yes" /> 6 <Payload SourceFile="!(bindpath.dncx64)\TestBA.dll" />
7 <Payload SourceFile="!(bindpath.dncx64)\TestBA.runtimeconfig.json" /> 7 <Payload SourceFile="!(bindpath.dncx64)\TestBA.runtimeconfig.json" />
8 <Payload SourceFile="!(bindpath.dncx64)\mbanative.dll" /> 8 <Payload SourceFile="!(bindpath.dncx64)\mbanative.dll" />
9 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.Mba.Core.dll" /> 9 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.Mba.Core.dll" />
10 <bal:WixDotNetCoreBootstrapperApplicationHost />
11 </BootstrapperApplication> 10 </BootstrapperApplication>
12 11
13 <PackageGroup Id="TestBAdnc_x64"> 12 <PackageGroup Id="TestBAdnc_x64">
@@ -15,12 +14,10 @@
15 </PackageGroup> 14 </PackageGroup>
16 </Fragment> 15 </Fragment>
17 <Fragment> 16 <Fragment>
18 <BootstrapperApplication> 17 <BootstrapperApplication SourceFile="!(bindpath.net2x64)\TestBA.exe">
19 <Payload Name="WixToolset.Mba.Host.config" SourceFile="!(bindpath.net2x64)\TestBA.BootstrapperCore.config" /> 18 <Payload SourceFile="!(bindpath.net2x64)\TestBA.exe.config" />
20 <Payload SourceFile="!(bindpath.net2x64)\TestBA.dll" />
21 <Payload SourceFile="!(bindpath.net2x64)\mbanative.dll" /> 19 <Payload SourceFile="!(bindpath.net2x64)\mbanative.dll" />
22 <Payload SourceFile="!(bindpath.net2x64)\WixToolset.Mba.Core.dll" /> 20 <Payload SourceFile="!(bindpath.net2x64)\WixToolset.Mba.Core.dll" />
23 <bal:WixManagedBootstrapperApplicationHost />
24 </BootstrapperApplication> 21 </BootstrapperApplication>
25 22
26 <PackageGroup Id="TestBA_x64"> 23 <PackageGroup Id="TestBA_x64">
diff --git a/src/test/burn/TestData/TestBA/TestBAWixlib_x64/WixBA_x64.wxs b/src/test/burn/TestData/TestBA/TestBAWixlib_x64/WixBA_x64.wxs
index e9cd9827..ef465e23 100644
--- a/src/test/burn/TestData/TestBA/TestBAWixlib_x64/WixBA_x64.wxs
+++ b/src/test/burn/TestData/TestBA/TestBAWixlib_x64/WixBA_x64.wxs
@@ -1,14 +1,13 @@
1<!-- 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. --> 1<!-- 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<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:netfx="http://wixtoolset.org/schemas/v4/wxs/netfx"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:netfx="http://wixtoolset.org/schemas/v4/wxs/netfx">
3 <Fragment> 3 <Fragment>
4 <BootstrapperApplication> 4 <BootstrapperApplication SourceFile="!(bindpath.dncx64)\WixToolset.WixBA.exe">
5 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.WixBA.deps.json" /> 5 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.WixBA.deps.json" />
6 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.WixBA.dll" bal:BAFactoryAssembly="yes" /> 6 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.WixBA.dll" />
7 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.WixBA.runtimeconfig.json" /> 7 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.WixBA.runtimeconfig.json" />
8 <Payload SourceFile="!(bindpath.dncx64)\mbanative.dll" /> 8 <Payload SourceFile="!(bindpath.dncx64)\mbanative.dll" />
9 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.Mba.Core.dll" /> 9 <Payload SourceFile="!(bindpath.dncx64)\WixToolset.Mba.Core.dll" />
10 <Payload SourceFile='..\..\..\..\..\..\License.txt' /> 10 <Payload SourceFile='..\..\..\..\..\..\License.txt' />
11 <bal:WixDotNetCoreBootstrapperApplicationHost />
12 </BootstrapperApplication> 11 </BootstrapperApplication>
13 12
14 <PackageGroup Id="WixBAdnc_x64"> 13 <PackageGroup Id="WixBAdnc_x64">
diff --git a/src/test/burn/TestData/UpdateBundleTests/BundleBv1/Bundle.wxs b/src/test/burn/TestData/UpdateBundleTests/BundleBv1/Bundle.wxs
index 906121f4..63f3043b 100644
--- a/src/test/burn/TestData/UpdateBundleTests/BundleBv1/Bundle.wxs
+++ b/src/test/burn/TestData/UpdateBundleTests/BundleBv1/Bundle.wxs
@@ -22,9 +22,7 @@
22 <?elseif $(var.BA) = "TestBAdnc"?> 22 <?elseif $(var.BA) = "TestBAdnc"?>
23 <!-- pulled in through the PackageGroupRef below --> 23 <!-- pulled in through the PackageGroupRef below -->
24 <?elseif $(var.BA) = "hyperlinkLicense"?> 24 <?elseif $(var.BA) = "hyperlinkLicense"?>
25 <BootstrapperApplication> 25 <bal:WixStandardBootstrapperApplication LicenseUrl="" Theme="hyperlinkLicense" />
26 <bal:WixStandardBootstrapperApplication LicenseUrl="" Theme="hyperlinkLicense" />
27 </BootstrapperApplication>
28 <?else?> 26 <?else?>
29 <BootstrapperApplicationRef Id="$(var.BA)" /> 27 <BootstrapperApplicationRef Id="$(var.BA)" />
30 <?endif?> 28 <?endif?>
diff --git a/src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs b/src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs
index 70b8ed1f..44f52817 100644
--- a/src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs
+++ b/src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs
@@ -9,7 +9,7 @@
9 <?endif?> 9 <?endif?>
10 10
11 <Update Location='$(UpdateFeed)' /> 11 <Update Location='$(UpdateFeed)' />
12 12
13 <Variable Name="TestGroupName" Value="$(var.TestGroupName)" /> 13 <Variable Name="TestGroupName" Value="$(var.TestGroupName)" />
14 14
15 <BootstrapperApplication> 15 <BootstrapperApplication>