diff options
| author | Rob Mensching <rob@firegiant.com> | 2026-01-06 22:59:35 -0800 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2026-01-07 16:25:33 -0800 |
| commit | b337ce4678a5c66c7a2edc2bf9f87a71b4916b1b (patch) | |
| tree | a0d807245cd7019dde71051bd9e8de9a39e313a4 | |
| parent | 164ea64ea05c1298979cadda1842feaf86a1bda9 (diff) | |
| download | wix-main.tar.gz wix-main.tar.bz2 wix-main.zip | |
Fixes 8104
20 files changed, 188 insertions, 24 deletions
diff --git a/src/ext/Bal/stdbas/WixInternalUIBootstrapperApplication.cpp b/src/ext/Bal/stdbas/WixInternalUIBootstrapperApplication.cpp index 270ce40c..bae098d4 100644 --- a/src/ext/Bal/stdbas/WixInternalUIBootstrapperApplication.cpp +++ b/src/ext/Bal/stdbas/WixInternalUIBootstrapperApplication.cpp | |||
| @@ -557,14 +557,19 @@ private: | |||
| 557 | HRESULT CreateMainWindow() | 557 | HRESULT CreateMainWindow() |
| 558 | { | 558 | { |
| 559 | HRESULT hr = S_OK; | 559 | HRESULT hr = S_OK; |
| 560 | WNDCLASSW wc = { }; | 560 | WNDCLASSEXW wc = { }; |
| 561 | DWORD dwWindowStyle = WS_POPUP; | 561 | DWORD dwWindowStyle = WS_POPUP; |
| 562 | 562 | ||
| 563 | LoadBundleIcon(m_hModule, &m_hIcon, &m_hSmallIcon); | ||
| 564 | |||
| 565 | wc.cbSize = sizeof(WNDCLASSEXW); | ||
| 563 | wc.lpfnWndProc = CWixInternalUIBootstrapperApplication::WndProc; | 566 | wc.lpfnWndProc = CWixInternalUIBootstrapperApplication::WndProc; |
| 564 | wc.hInstance = m_hModule; | 567 | wc.hInstance = m_hModule; |
| 565 | wc.lpszClassName = WIXIUIBA_WINDOW_CLASS; | 568 | wc.lpszClassName = WIXIUIBA_WINDOW_CLASS; |
| 569 | wc.hIcon = m_hIcon; | ||
| 570 | wc.hIconSm = m_hSmallIcon; | ||
| 566 | 571 | ||
| 567 | if (!::RegisterClassW(&wc)) | 572 | if (!::RegisterClassExW(&wc)) |
| 568 | { | 573 | { |
| 569 | ExitWithLastError(hr, "Failed to register window."); | 574 | ExitWithLastError(hr, "Failed to register window."); |
| 570 | } | 575 | } |
| @@ -601,6 +606,18 @@ private: | |||
| 601 | ::UnregisterClassW(WIXIUIBA_WINDOW_CLASS, m_hModule); | 606 | ::UnregisterClassW(WIXIUIBA_WINDOW_CLASS, m_hModule); |
| 602 | m_fRegistered = FALSE; | 607 | m_fRegistered = FALSE; |
| 603 | } | 608 | } |
| 609 | |||
| 610 | if (m_hIcon) | ||
| 611 | { | ||
| 612 | ::DestroyIcon(m_hIcon); | ||
| 613 | m_hIcon = NULL; | ||
| 614 | } | ||
| 615 | |||
| 616 | if (m_hSmallIcon) | ||
| 617 | { | ||
| 618 | ::DestroyIcon(m_hSmallIcon); | ||
| 619 | m_hSmallIcon = NULL; | ||
| 620 | } | ||
| 604 | } | 621 | } |
| 605 | 622 | ||
| 606 | // | 623 | // |
| @@ -807,6 +824,8 @@ public: | |||
| 807 | m_sczFailedMessage = NULL; | 824 | m_sczFailedMessage = NULL; |
| 808 | 825 | ||
| 809 | m_hUiThread = NULL; | 826 | m_hUiThread = NULL; |
| 827 | m_hIcon = NULL; | ||
| 828 | m_hSmallIcon = NULL; | ||
| 810 | m_fRegistered = FALSE; | 829 | m_fRegistered = FALSE; |
| 811 | m_hWnd = NULL; | 830 | m_hWnd = NULL; |
| 812 | 831 | ||
| @@ -847,6 +866,8 @@ private: | |||
| 847 | LPWSTR m_sczConfirmCloseMessage; | 866 | LPWSTR m_sczConfirmCloseMessage; |
| 848 | 867 | ||
| 849 | HANDLE m_hUiThread; | 868 | HANDLE m_hUiThread; |
| 869 | HICON m_hIcon; | ||
| 870 | HICON m_hSmallIcon; | ||
| 850 | BOOL m_fRegistered; | 871 | BOOL m_fRegistered; |
| 851 | HWND m_hWnd; | 872 | HWND m_hWnd; |
| 852 | 873 | ||
diff --git a/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp b/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp index ddb2d1c5..c1e8b2b3 100644 --- a/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp +++ b/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp | |||
| @@ -3301,26 +3301,24 @@ private: | |||
| 3301 | HRESULT CreateMainWindow() | 3301 | HRESULT CreateMainWindow() |
| 3302 | { | 3302 | { |
| 3303 | HRESULT hr = S_OK; | 3303 | HRESULT hr = S_OK; |
| 3304 | WNDCLASSW wc = { }; | 3304 | WNDCLASSEXW wc = { sizeof(WNDCLASSEXW)}; |
| 3305 | DWORD dwWindowStyle = 0; | 3305 | DWORD dwWindowStyle = 0; |
| 3306 | int x = CW_USEDEFAULT; | 3306 | int x = CW_USEDEFAULT; |
| 3307 | int y = CW_USEDEFAULT; | 3307 | int y = CW_USEDEFAULT; |
| 3308 | POINT ptCursor = { }; | 3308 | POINT ptCursor = { }; |
| 3309 | 3309 | ||
| 3310 | ThemeInitializeWindowClass(m_pTheme, &wc, CWixStandardBootstrapperApplication::WndProc, m_hModule, WIXSTDBA_WINDOW_CLASS); | 3310 | ThemeInitializeWindowClassEx(m_pTheme, &wc, CWixStandardBootstrapperApplication::WndProc, m_hModule, WIXSTDBA_WINDOW_CLASS); |
| 3311 | 3311 | ||
| 3312 | // If the theme did not provide an icon, try using the icon from the bundle engine. | 3312 | // If the theme did not provide an icon, try using the icon from the bundle then fallback to the bundle engine. |
| 3313 | if (!wc.hIcon) | 3313 | if (!wc.hIcon) |
| 3314 | { | 3314 | { |
| 3315 | HMODULE hBootstrapperEngine = ::GetModuleHandleW(NULL); | 3315 | LoadBundleIcon(m_hModule, &m_hIcon, &m_hSmallIcon); |
| 3316 | if (hBootstrapperEngine) | 3316 | wc.hIcon = m_hIcon; |
| 3317 | { | 3317 | wc.hIconSm = m_hSmallIcon; |
| 3318 | wc.hIcon = ::LoadIconW(hBootstrapperEngine, MAKEINTRESOURCEW(1)); | ||
| 3319 | } | ||
| 3320 | } | 3318 | } |
| 3321 | 3319 | ||
| 3322 | // Register the window class and create the window. | 3320 | // Register the window class and create the window. |
| 3323 | if (!::RegisterClassW(&wc)) | 3321 | if (!::RegisterClassExW(&wc)) |
| 3324 | { | 3322 | { |
| 3325 | ExitWithLastError(hr, "Failed to register window."); | 3323 | ExitWithLastError(hr, "Failed to register window."); |
| 3326 | } | 3324 | } |
| @@ -3358,7 +3356,6 @@ private: | |||
| 3358 | return hr; | 3356 | return hr; |
| 3359 | } | 3357 | } |
| 3360 | 3358 | ||
| 3361 | |||
| 3362 | // | 3359 | // |
| 3363 | // InitializeTaskbarButton - initializes taskbar button for progress. | 3360 | // InitializeTaskbarButton - initializes taskbar button for progress. |
| 3364 | // | 3361 | // |
| @@ -3397,6 +3394,18 @@ private: | |||
| 3397 | ::UnregisterClassW(WIXSTDBA_WINDOW_CLASS, m_hModule); | 3394 | ::UnregisterClassW(WIXSTDBA_WINDOW_CLASS, m_hModule); |
| 3398 | m_fRegistered = FALSE; | 3395 | m_fRegistered = FALSE; |
| 3399 | } | 3396 | } |
| 3397 | |||
| 3398 | if (m_hIcon) | ||
| 3399 | { | ||
| 3400 | ::DestroyIcon(m_hIcon); | ||
| 3401 | m_hIcon = NULL; | ||
| 3402 | } | ||
| 3403 | |||
| 3404 | if (m_hSmallIcon) | ||
| 3405 | { | ||
| 3406 | ::DestroyIcon(m_hSmallIcon); | ||
| 3407 | m_hSmallIcon = NULL; | ||
| 3408 | } | ||
| 3400 | } | 3409 | } |
| 3401 | 3410 | ||
| 3402 | 3411 | ||
| @@ -4822,6 +4831,8 @@ public: | |||
| 4822 | m_pTheme = NULL; | 4831 | m_pTheme = NULL; |
| 4823 | memset(m_rgdwPageIds, 0, sizeof(m_rgdwPageIds)); | 4832 | memset(m_rgdwPageIds, 0, sizeof(m_rgdwPageIds)); |
| 4824 | m_hUiThread = NULL; | 4833 | m_hUiThread = NULL; |
| 4834 | m_hIcon = NULL; | ||
| 4835 | m_hSmallIcon = NULL; | ||
| 4825 | m_fRegistered = FALSE; | 4836 | m_fRegistered = FALSE; |
| 4826 | m_hWnd = NULL; | 4837 | m_hWnd = NULL; |
| 4827 | 4838 | ||
| @@ -5110,6 +5121,8 @@ private: | |||
| 5110 | THEME_ASSIGN_CONTROL_ID m_rgInitControls[LAST_WIXSTDBA_CONTROL - WIXSTDBA_FIRST_ASSIGN_CONTROL_ID]; | 5121 | THEME_ASSIGN_CONTROL_ID m_rgInitControls[LAST_WIXSTDBA_CONTROL - WIXSTDBA_FIRST_ASSIGN_CONTROL_ID]; |
| 5111 | DWORD m_rgdwPageIds[countof(vrgwzPageNames)]; | 5122 | DWORD m_rgdwPageIds[countof(vrgwzPageNames)]; |
| 5112 | HANDLE m_hUiThread; | 5123 | HANDLE m_hUiThread; |
| 5124 | HICON m_hIcon; | ||
| 5125 | HICON m_hSmallIcon; | ||
| 5113 | BOOL m_fRegistered; | 5126 | BOOL m_fRegistered; |
| 5114 | HWND m_hWnd; | 5127 | HWND m_hWnd; |
| 5115 | 5128 | ||
diff --git a/src/ext/Bal/stdbas/precomp.h b/src/ext/Bal/stdbas/precomp.h index a6c4cfe4..0faf1548 100644 --- a/src/ext/Bal/stdbas/precomp.h +++ b/src/ext/Bal/stdbas/precomp.h | |||
| @@ -42,3 +42,9 @@ | |||
| 42 | 42 | ||
| 43 | #include "stdbas.messages.h" | 43 | #include "stdbas.messages.h" |
| 44 | #include "WixStandardBootstrapperApplication.h" | 44 | #include "WixStandardBootstrapperApplication.h" |
| 45 | |||
| 46 | HRESULT LoadBundleIcon( | ||
| 47 | __in HMODULE hModule, | ||
| 48 | __out HICON* phIcon, | ||
| 49 | __out HICON* phSmallIcon | ||
| 50 | ); | ||
diff --git a/src/ext/Bal/stdbas/stdbas.cpp b/src/ext/Bal/stdbas/stdbas.cpp new file mode 100644 index 00000000..909bdc23 --- /dev/null +++ b/src/ext/Bal/stdbas/stdbas.cpp | |||
| @@ -0,0 +1,50 @@ | |||
| 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 | |||
| 3 | #include "precomp.h" | ||
| 4 | |||
| 5 | static const LPCWSTR WIX_BUNDLE_ICON_FILENAME = L"WixBundle.ico"; | ||
| 6 | |||
| 7 | |||
| 8 | // | ||
| 9 | // LoadBundleIcon - loads the icon that was (optionally) authored in the bundle otherwise use the one embedded in the bootstrapper application. | ||
| 10 | // | ||
| 11 | HRESULT LoadBundleIcon( | ||
| 12 | __in HMODULE hModule, | ||
| 13 | __out HICON* phIcon, | ||
| 14 | __out HICON* phSmallIcon | ||
| 15 | ) | ||
| 16 | { | ||
| 17 | HRESULT hr = S_OK; | ||
| 18 | LPWSTR sczIconPath = NULL; | ||
| 19 | int nIconWidth = ::GetSystemMetrics(SM_CXICON); | ||
| 20 | int nIconHeight = ::GetSystemMetrics(SM_CYICON); | ||
| 21 | int nSmallIconWidth = ::GetSystemMetrics(SM_CXSMICON); | ||
| 22 | int nSmallIconHeight = ::GetSystemMetrics(SM_CYSMICON); | ||
| 23 | HICON hIcon = NULL; | ||
| 24 | HICON hSmallIcon = NULL; | ||
| 25 | |||
| 26 | // First look for the optional authored bundle icon. | ||
| 27 | hr = PathRelativeToModule(&sczIconPath, WIX_BUNDLE_ICON_FILENAME, hModule); | ||
| 28 | ExitOnFailure(hr, "Failed to get path to bundle icon: %ls", WIX_BUNDLE_ICON_FILENAME); | ||
| 29 | |||
| 30 | if (FileExistsEx(sczIconPath, NULL)) | ||
| 31 | { | ||
| 32 | hIcon = reinterpret_cast<HICON>(::LoadImageW(NULL, sczIconPath, IMAGE_ICON, nIconWidth, nIconHeight, LR_LOADFROMFILE)); | ||
| 33 | |||
| 34 | hSmallIcon = reinterpret_cast<HICON>(::LoadImageW(NULL, sczIconPath, IMAGE_ICON, nSmallIconWidth, nSmallIconHeight, LR_LOADFROMFILE)); | ||
| 35 | } | ||
| 36 | else // fallback to the first icon resource in the bootstrapper application. | ||
| 37 | { | ||
| 38 | hIcon = reinterpret_cast<HICON>(::LoadImageW(hModule, MAKEINTRESOURCEW(1), IMAGE_ICON, nIconWidth, nIconHeight, LR_DEFAULTCOLOR)); | ||
| 39 | |||
| 40 | hSmallIcon = reinterpret_cast<HICON>(::LoadImageW(hModule, MAKEINTRESOURCEW(1), IMAGE_ICON, nSmallIconWidth, nSmallIconHeight, LR_DEFAULTCOLOR)); | ||
| 41 | } | ||
| 42 | |||
| 43 | *phIcon = hIcon; | ||
| 44 | *phSmallIcon = hSmallIcon; | ||
| 45 | |||
| 46 | LExit: | ||
| 47 | ReleaseStr(sczIconPath); | ||
| 48 | |||
| 49 | return hr; | ||
| 50 | } | ||
diff --git a/src/ext/Bal/stdbas/stdbas.vcxproj b/src/ext/Bal/stdbas/stdbas.vcxproj index fb2b0682..ba990af7 100644 --- a/src/ext/Bal/stdbas/stdbas.vcxproj +++ b/src/ext/Bal/stdbas/stdbas.vcxproj | |||
| @@ -60,6 +60,7 @@ | |||
| 60 | <ClCompile Include="precomp.cpp"> | 60 | <ClCompile Include="precomp.cpp"> |
| 61 | <PrecompiledHeader>Create</PrecompiledHeader> | 61 | <PrecompiledHeader>Create</PrecompiledHeader> |
| 62 | </ClCompile> | 62 | </ClCompile> |
| 63 | <ClCompile Include="stdbas.cpp" /> | ||
| 63 | <ClCompile Include="WixInternalUIBootstrapperApplication.cpp" /> | 64 | <ClCompile Include="WixInternalUIBootstrapperApplication.cpp" /> |
| 64 | <ClCompile Include="WixStandardBootstrapperApplication.cpp" /> | 65 | <ClCompile Include="WixStandardBootstrapperApplication.cpp" /> |
| 65 | </ItemGroup> | 66 | </ItemGroup> |
| @@ -80,4 +81,4 @@ rc.exe -fo "$(OutDir)stdbas.res" "$(IntDir)stdbas.messages.rc"</Command> | |||
| 80 | </ItemGroup> | 81 | </ItemGroup> |
| 81 | 82 | ||
| 82 | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | 83 | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
| 83 | </Project> | 84 | </Project> \ No newline at end of file |
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/BalExtensionFixture.cs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/BalExtensionFixture.cs index 576e7c6c..e599b8e2 100644 --- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/BalExtensionFixture.cs +++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/BalExtensionFixture.cs | |||
| @@ -24,7 +24,8 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 24 | { | 24 | { |
| 25 | var baseFolder = fs.GetFolder(); | 25 | var baseFolder = fs.GetFolder(); |
| 26 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); | 26 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); |
| 27 | var bundleSourceFolder = TestData.Get(@"TestData\WixStdBa"); | 27 | var bundleSourceFolder = TestData.Get(@"TestData", "WixStdBa"); |
| 28 | var dataFolder = TestData.Get(@"TestData", ".Data"); | ||
| 28 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | 29 | var intermediateFolder = Path.Combine(baseFolder, "obj"); |
| 29 | var baFolderPath = Path.Combine(baseFolder, "ba"); | 30 | var baFolderPath = Path.Combine(baseFolder, "ba"); |
| 30 | var extractFolderPath = Path.Combine(baseFolder, "extract"); | 31 | var extractFolderPath = Path.Combine(baseFolder, "extract"); |
| @@ -36,6 +37,7 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 36 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), | 37 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), |
| 37 | "-intermediateFolder", intermediateFolder, | 38 | "-intermediateFolder", intermediateFolder, |
| 38 | "-bindpath", Path.Combine(bundleSourceFolder, "data"), | 39 | "-bindpath", Path.Combine(bundleSourceFolder, "data"), |
| 40 | "-bindpath", dataFolder, | ||
| 39 | "-o", bundleFile, | 41 | "-o", bundleFile, |
| 40 | }); | 42 | }); |
| 41 | compileResult.AssertSuccess(); | 43 | compileResult.AssertSuccess(); |
| @@ -62,7 +64,8 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 62 | { | 64 | { |
| 63 | var baseFolder = fs.GetFolder(); | 65 | var baseFolder = fs.GetFolder(); |
| 64 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); | 66 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); |
| 65 | var bundleSourceFolder = TestData.Get(@"TestData\WixStdBa"); | 67 | var bundleSourceFolder = TestData.Get(@"TestData", "WixStdBa"); |
| 68 | var dataFolder = TestData.Get(@"TestData", ".Data"); | ||
| 66 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | 69 | var intermediateFolder = Path.Combine(baseFolder, "obj"); |
| 67 | var baFolderPath = Path.Combine(baseFolder, "ba"); | 70 | var baFolderPath = Path.Combine(baseFolder, "ba"); |
| 68 | var extractFolderPath = Path.Combine(baseFolder, "extract"); | 71 | var extractFolderPath = Path.Combine(baseFolder, "extract"); |
| @@ -74,6 +77,7 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 74 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), | 77 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), |
| 75 | "-intermediateFolder", intermediateFolder, | 78 | "-intermediateFolder", intermediateFolder, |
| 76 | "-bindpath", Path.Combine(bundleSourceFolder, "data"), | 79 | "-bindpath", Path.Combine(bundleSourceFolder, "data"), |
| 80 | "-bindpath", dataFolder, | ||
| 77 | "-o", bundleFile, | 81 | "-o", bundleFile, |
| 78 | }); | 82 | }); |
| 79 | compileResult.AssertSuccess(); | 83 | compileResult.AssertSuccess(); |
| @@ -101,6 +105,7 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 101 | var baseFolder = fs.GetFolder(); | 105 | var baseFolder = fs.GetFolder(); |
| 102 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); | 106 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); |
| 103 | var bundleSourceFolder = TestData.Get("TestData", "WixStdBa"); | 107 | var bundleSourceFolder = TestData.Get("TestData", "WixStdBa"); |
| 108 | var dataFolder = TestData.Get(@"TestData", ".Data"); | ||
| 104 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | 109 | var intermediateFolder = Path.Combine(baseFolder, "obj"); |
| 105 | var baFolderPath = Path.Combine(baseFolder, "ba"); | 110 | var baFolderPath = Path.Combine(baseFolder, "ba"); |
| 106 | var extractFolderPath = Path.Combine(baseFolder, "extract"); | 111 | var extractFolderPath = Path.Combine(baseFolder, "extract"); |
| @@ -112,6 +117,7 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 112 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), | 117 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), |
| 113 | "-intermediateFolder", intermediateFolder, | 118 | "-intermediateFolder", intermediateFolder, |
| 114 | "-bindpath", Path.Combine(bundleSourceFolder, "data"), | 119 | "-bindpath", Path.Combine(bundleSourceFolder, "data"), |
| 120 | "-bindpath", dataFolder, | ||
| 115 | "-o", bundleFile, | 121 | "-o", bundleFile, |
| 116 | }); | 122 | }); |
| 117 | compileResult.AssertSuccess(); | 123 | compileResult.AssertSuccess(); |
| @@ -141,7 +147,8 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 141 | { | 147 | { |
| 142 | var baseFolder = fs.GetFolder(); | 148 | var baseFolder = fs.GetFolder(); |
| 143 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); | 149 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); |
| 144 | var bundleSourceFolder = TestData.Get(@"TestData\Overridable"); | 150 | var bundleSourceFolder = TestData.Get(@"TestData", "Overridable"); |
| 151 | var dataFolder = TestData.Get(@"TestData", ".Data"); | ||
| 145 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | 152 | var intermediateFolder = Path.Combine(baseFolder, "obj"); |
| 146 | var baFolderPath = Path.Combine(baseFolder, "ba"); | 153 | var baFolderPath = Path.Combine(baseFolder, "ba"); |
| 147 | var extractFolderPath = Path.Combine(baseFolder, "extract"); | 154 | var extractFolderPath = Path.Combine(baseFolder, "extract"); |
| @@ -152,6 +159,7 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 152 | Path.Combine(bundleSourceFolder, "Bundle.wxs"), | 159 | Path.Combine(bundleSourceFolder, "Bundle.wxs"), |
| 153 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), | 160 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), |
| 154 | "-intermediateFolder", intermediateFolder, | 161 | "-intermediateFolder", intermediateFolder, |
| 162 | "-bindpath", dataFolder, | ||
| 155 | "-o", bundleFile, | 163 | "-o", bundleFile, |
| 156 | }); | 164 | }); |
| 157 | compileResult.AssertSuccess(); | 165 | compileResult.AssertSuccess(); |
| @@ -182,7 +190,8 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 182 | { | 190 | { |
| 183 | var baseFolder = fs.GetFolder(); | 191 | var baseFolder = fs.GetFolder(); |
| 184 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); | 192 | var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); |
| 185 | var bundleSourceFolder = TestData.Get(@"TestData\WixStdBa"); | 193 | var bundleSourceFolder = TestData.Get(@"TestData", "WixStdBa"); |
| 194 | var dataFolder = TestData.Get(@"TestData", ".Data"); | ||
| 186 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | 195 | var intermediateFolder = Path.Combine(baseFolder, "obj"); |
| 187 | 196 | ||
| 188 | var compileResult = WixRunner.Execute(new[] | 197 | var compileResult = WixRunner.Execute(new[] |
| @@ -191,6 +200,7 @@ namespace WixToolsetTest.BootstrapperApplications | |||
| 191 | Path.Combine(bundleSourceFolder, "Bundle.wxs"), | 200 | Path.Combine(bundleSourceFolder, "Bundle.wxs"), |
| 192 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), | 201 | "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), |
| 193 | "-intermediateFolder", intermediateFolder, | 202 | "-intermediateFolder", intermediateFolder, |
| 203 | "-bindpath", dataFolder, | ||
| 194 | "-o", bundleFile, | 204 | "-o", bundleFile, |
| 195 | }); | 205 | }); |
| 196 | compileResult.AssertSuccess(); | 206 | compileResult.AssertSuccess(); |
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/.Data/test.ico b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/.Data/test.ico new file mode 100644 index 00000000..906ce324 --- /dev/null +++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/.Data/test.ico | |||
| Binary files differ | |||
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/BootstrapperApplicationId.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/BootstrapperApplicationId.wxs index e1945f53..44c15999 100644 --- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/BootstrapperApplicationId.wxs +++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/BootstrapperApplicationId.wxs | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" |
| 3 | xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> | 3 | xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> |
| 4 | <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"> | 4 | <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2" |
| 5 | IconSourceFile="test.ico"> | ||
| 5 | <BootstrapperApplication Id="Custom"> | 6 | <BootstrapperApplication Id="Custom"> |
| 6 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> | 7 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> |
| 7 | </BootstrapperApplication> | 8 | </BootstrapperApplication> |
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/Bundle.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/Bundle.wxs index c17b53ff..e0346900 100644 --- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/Bundle.wxs +++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/Bundle.wxs | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" |
| 3 | xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> | 3 | xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> |
| 4 | <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"> | 4 | <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2" |
| 5 | IconSourceFile="test.ico"> | ||
| 5 | <BootstrapperApplication> | 6 | <BootstrapperApplication> |
| 6 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> | 7 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> |
| 7 | </BootstrapperApplication> | 8 | </BootstrapperApplication> |
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayFilesInUseDialogConditionBundle.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayFilesInUseDialogConditionBundle.wxs index 1041eb39..098d6f83 100644 --- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayFilesInUseDialogConditionBundle.wxs +++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayFilesInUseDialogConditionBundle.wxs | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" |
| 3 | xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> | 3 | xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> |
| 4 | <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"> | 4 | <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2" |
| 5 | IconSourceFile="test.ico"> | ||
| 5 | <BootstrapperApplication> | 6 | <BootstrapperApplication> |
| 6 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> | 7 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> |
| 7 | </BootstrapperApplication> | 8 | </BootstrapperApplication> |
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayInternalUIConditionBundle.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayInternalUIConditionBundle.wxs index f08cfe6a..2dea66fd 100644 --- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayInternalUIConditionBundle.wxs +++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayInternalUIConditionBundle.wxs | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" | 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" |
| 3 | xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> | 3 | xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> |
| 4 | <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"> | 4 | <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2" |
| 5 | IconSourceFile="test.ico"> | ||
| 5 | <BootstrapperApplication> | 6 | <BootstrapperApplication> |
| 6 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> | 7 | <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> |
| 7 | </BootstrapperApplication> | 8 | </BootstrapperApplication> |
diff --git a/src/libs/dutil/WixToolset.DUtil/inc/thmutil.h b/src/libs/dutil/WixToolset.DUtil/inc/thmutil.h index 45e4fc51..14e20c0d 100644 --- a/src/libs/dutil/WixToolset.DUtil/inc/thmutil.h +++ b/src/libs/dutil/WixToolset.DUtil/inc/thmutil.h | |||
| @@ -567,6 +567,19 @@ void DAPI ThemeInitializeWindowClass( | |||
| 567 | ); | 567 | ); |
| 568 | 568 | ||
| 569 | /******************************************************************** | 569 | /******************************************************************** |
| 570 | ThemeInitializeWindowClassEx - sets defaults for the window class | ||
| 571 | from the given theme. | ||
| 572 | |||
| 573 | *******************************************************************/ | ||
| 574 | void DAPI ThemeInitializeWindowClassEx( | ||
| 575 | __in THEME* pTheme, | ||
| 576 | __in WNDCLASSEXW* pWndClass, | ||
| 577 | __in WNDPROC pfnWndProc, | ||
| 578 | __in HINSTANCE hInstance, | ||
| 579 | __in LPCWSTR wzClassName | ||
| 580 | ); | ||
| 581 | |||
| 582 | /******************************************************************** | ||
| 570 | ThemeCreateParentWindow - creates a parent window for the theme. | 583 | ThemeCreateParentWindow - creates a parent window for the theme. |
| 571 | 584 | ||
| 572 | *******************************************************************/ | 585 | *******************************************************************/ |
diff --git a/src/libs/dutil/WixToolset.DUtil/thmutil.cpp b/src/libs/dutil/WixToolset.DUtil/thmutil.cpp index a7a7e45b..4482c96e 100644 --- a/src/libs/dutil/WixToolset.DUtil/thmutil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/thmutil.cpp | |||
| @@ -856,6 +856,28 @@ DAPI_(void) ThemeInitializeWindowClass( | |||
| 856 | } | 856 | } |
| 857 | 857 | ||
| 858 | 858 | ||
| 859 | DAPI_(void) ThemeInitializeWindowClassEx( | ||
| 860 | __in THEME* pTheme, | ||
| 861 | __in WNDCLASSEXW* pWndClass, | ||
| 862 | __in WNDPROC pfnWndProc, | ||
| 863 | __in HINSTANCE hInstance, | ||
| 864 | __in LPCWSTR wzClassName | ||
| 865 | ) | ||
| 866 | { | ||
| 867 | pWndClass->cbSize = sizeof(WNDCLASSEXW); | ||
| 868 | pWndClass->style = CS_HREDRAW | CS_VREDRAW; | ||
| 869 | pWndClass->cbWndExtra = DLGWINDOWEXTRA; | ||
| 870 | pWndClass->hCursor = ::LoadCursorW(NULL, (LPCWSTR)IDC_ARROW); | ||
| 871 | |||
| 872 | pWndClass->lpfnWndProc = pfnWndProc; | ||
| 873 | pWndClass->hInstance = hInstance; | ||
| 874 | pWndClass->lpszClassName = wzClassName; | ||
| 875 | |||
| 876 | pWndClass->hIcon = reinterpret_cast<HICON>(pTheme->hIcon); | ||
| 877 | pWndClass->hbrBackground = pTheme->rgFonts[pTheme->dwFontId].hBackground; | ||
| 878 | } | ||
| 879 | |||
| 880 | |||
| 859 | DAPI_(HRESULT) ThemeCreateParentWindow( | 881 | DAPI_(HRESULT) ThemeCreateParentWindow( |
| 860 | __in THEME* pTheme, | 882 | __in THEME* pTheme, |
| 861 | __in DWORD dwExStyle, | 883 | __in DWORD dwExStyle, |
diff --git a/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wixproj b/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wixproj index 1d3d6f17..01b2401d 100644 --- a/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wixproj +++ b/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wixproj | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | </PropertyGroup> | 7 | </PropertyGroup> |
| 8 | <ItemGroup> | 8 | <ItemGroup> |
| 9 | <Compile Include="..\..\WixStdBaTests\BundleA\Bundle.wxs" Link="Bundle.wxs" /> | 9 | <Compile Include="..\..\WixStdBaTests\BundleA\Bundle.wxs" Link="Bundle.wxs" /> |
| 10 | <BindPath Include="..\..\WixStdBaTests\BundleA" /> | ||
| 10 | </ItemGroup> | 11 | </ItemGroup> |
| 11 | <ItemGroup> | 12 | <ItemGroup> |
| 12 | <ProjectReference Include="..\PackageA\PackageA.wixproj" /> | 13 | <ProjectReference Include="..\PackageA\PackageA.wixproj" /> |
diff --git a/src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs b/src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs index 34071cad..78bda768 100644 --- a/src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs +++ b/src/test/burn/TestData/WixStdBaTests/BundleA/Bundle.wxs | |||
| @@ -1,7 +1,8 @@ | |||
| 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 | <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"> |
| 4 | <Bundle Name="~$(var.TestGroupName) - $(var.BundleName)" Version="$(var.TestVersion)" UpgradeCode="$(var.UpgradeCode)" Compressed="yes" bal:CommandLineVariables="caseSensitive"> | 4 | <Bundle Name="~$(var.TestGroupName) - $(var.BundleName)" Version="$(var.TestVersion)" UpgradeCode="$(var.UpgradeCode)" |
| 5 | IconSourceFile="test.ico" Compressed="yes" bal:CommandLineVariables="caseSensitive"> | ||
| 5 | <Log Prefix="~$(var.TestGroupName)_$(var.BundleName)" /> | 6 | <Log Prefix="~$(var.TestGroupName)_$(var.BundleName)" /> |
| 6 | 7 | ||
| 7 | <?ifndef UpdateFeed ?> | 8 | <?ifndef UpdateFeed ?> |
diff --git a/src/test/burn/TestData/WixStdBaTests/BundleA/test.ico b/src/test/burn/TestData/WixStdBaTests/BundleA/test.ico new file mode 100644 index 00000000..906ce324 --- /dev/null +++ b/src/test/burn/TestData/WixStdBaTests/BundleA/test.ico | |||
| Binary files differ | |||
diff --git a/src/wix/WixToolset.Core/Compiler_Bundle.cs b/src/wix/WixToolset.Core/Compiler_Bundle.cs index 49a729db..db49e728 100644 --- a/src/wix/WixToolset.Core/Compiler_Bundle.cs +++ b/src/wix/WixToolset.Core/Compiler_Bundle.cs | |||
| @@ -466,6 +466,20 @@ namespace WixToolset.Core | |||
| 466 | Name = "bundle-attached.cab", | 466 | Name = "bundle-attached.cab", |
| 467 | Type = ContainerType.Attached, | 467 | Type = ContainerType.Attached, |
| 468 | }); | 468 | }); |
| 469 | |||
| 470 | if (!String.IsNullOrEmpty(iconSourceFile)) | ||
| 471 | { | ||
| 472 | var compilerPayload = new CompilerPayload(this.Core, sourceLineNumbers, node) | ||
| 473 | { | ||
| 474 | Id = new Identifier(AccessModifier.Section, "WixBundle.ico"), | ||
| 475 | Name = "WixBundle.ico", | ||
| 476 | SourceFile = iconSourceFile, | ||
| 477 | }; | ||
| 478 | |||
| 479 | compilerPayload.FinishCompilingPayload(Compiler.BurnUXContainerId.Id); | ||
| 480 | |||
| 481 | compilerPayload.CreatePayloadSymbol(ComplexReferenceParentType.Container, Compiler.BurnUXContainerId.Id); | ||
| 482 | } | ||
| 469 | } | 483 | } |
| 470 | } | 484 | } |
| 471 | 485 | ||
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs index 174df55f..148ba739 100644 --- a/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs +++ b/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs | |||
| @@ -78,7 +78,7 @@ namespace WixToolsetTest.CoreIntegration | |||
| 78 | [Fact] | 78 | [Fact] |
| 79 | public void CanBuildSimpleBundle() | 79 | public void CanBuildSimpleBundle() |
| 80 | { | 80 | { |
| 81 | var folder = TestData.Get(@"TestData\SimpleBundle"); | 81 | var folder = TestData.Get(@"TestData", "SimpleBundle"); |
| 82 | 82 | ||
| 83 | using (var fs = new DisposableFileSystem()) | 83 | using (var fs = new DisposableFileSystem()) |
| 84 | { | 84 | { |
| @@ -96,6 +96,7 @@ namespace WixToolsetTest.CoreIntegration | |||
| 96 | "-loc", Path.Combine(folder, "Bundle.en-us.wxl"), | 96 | "-loc", Path.Combine(folder, "Bundle.en-us.wxl"), |
| 97 | "-bindpath", Path.Combine(folder, "data"), | 97 | "-bindpath", Path.Combine(folder, "data"), |
| 98 | "-intermediateFolder", intermediateFolder, | 98 | "-intermediateFolder", intermediateFolder, |
| 99 | "-bindpath", Path.Combine(folder, "data"), | ||
| 99 | "-o", exePath, | 100 | "-o", exePath, |
| 100 | }); | 101 | }); |
| 101 | 102 | ||
| @@ -172,6 +173,12 @@ namespace WixToolsetTest.CoreIntegration | |||
| 172 | }, registrationElements); | 173 | }, registrationElements); |
| 173 | 174 | ||
| 174 | var ignoreAttributesByElementName = new Dictionary<string, List<string>>() { { "Payload", new List<string> { "FileSize", "Hash" } } }; | 175 | var ignoreAttributesByElementName = new Dictionary<string, List<string>>() { { "Payload", new List<string> { "FileSize", "Hash" } } }; |
| 176 | var iconPayloads = extractResult.GetManifestTestXmlLines("/burn:BurnManifest/burn:UX/burn:Payload[@Id='WixBundle.ico']", ignoreAttributesByElementName); | ||
| 177 | WixAssert.CompareLineByLine( | ||
| 178 | [ | ||
| 179 | "<Payload Id='WixBundle.ico' FilePath='WixBundle.ico' SourcePath='u1' />", | ||
| 180 | ], iconPayloads); | ||
| 181 | |||
| 175 | var msiPayloads = extractResult.GetManifestTestXmlLines("/burn:BurnManifest/burn:Payload[@Id='test.msi']", ignoreAttributesByElementName); | 182 | var msiPayloads = extractResult.GetManifestTestXmlLines("/burn:BurnManifest/burn:Payload[@Id='test.msi']", ignoreAttributesByElementName); |
| 176 | WixAssert.CompareLineByLine(new[] | 183 | WixAssert.CompareLineByLine(new[] |
| 177 | { | 184 | { |
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs index cda76252..47b7e88e 100644 --- a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs +++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/Bundle.wxs | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
| 2 | <Bundle Name="!(loc.BundleName)" InProgressName="!(loc.BundleInProgressName)" Version="!(bind.packageVersion.test.msi)" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> | 2 | <Bundle Name="!(loc.BundleName)" Manufacturer="Example Corporation" Version="!(bind.packageVersion.test.msi)" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" |
| 3 | InProgressName="!(loc.BundleInProgressName)" IconSourceFile="test.ico"> | ||
| 3 | <BootstrapperApplication SourceFile="fakeba.dll" /> | 4 | <BootstrapperApplication SourceFile="fakeba.dll" /> |
| 4 | 5 | ||
| 5 | <Chain> | 6 | <Chain> |
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/test.ico b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/test.ico new file mode 100644 index 00000000..906ce324 --- /dev/null +++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleBundle/data/test.ico | |||
| Binary files differ | |||
