How to customize icon for Wix custom bootstrapper - wix

I want to use different icons for my setup.exe (top-leftmost corner of the installer window) and Add/Remove Programs. In my Bundle.wxs, I used <Bundle ... IconSourceFile='path\to\product1.ico'> but when I set the value there it is applying to both places as described in its documentation. So I tried this in my Product.wxs <Icon Id="ProductIcon" SourceFile="path\to\product2.ico"/> <Property Id='ARPPRODUCTICON' Value='ProductIcon'/> in an attempt to override the declaration in Bundle, but it still shows the first icon in Add/Remove programs. Any help? Thanks!

I faced the same problem. The solution is to change Logo attribute of custom BA main window.

Related

How do you change the red-cd icon on WiX?

In the Wix wizard there's a red CD icon here:
and here:
How do you change it?
I tried adding:
<WixVariable Id="WixUIInfoIco" Value="Dashman-setup-icon.bmp" />
<WixVariable Id="WixUIExclamationIco" Value="Dashman-setup-icon.bmp" />
but it had no effect.
The red CD icons are part of the bitmaps used in the WixUIExtension. In the source code for WixUIExtension, you can view the bitmaps it uses. From UI Wizardy:
<!-- WixUIBannerBmp 493 by 58 pixels,
this bitmap will appear at the top of all
but the first page of the installer-->
<WixVariable Id="WixUIBannerBmp" Value="path\banner.bmp" />
<!-- WixUIDialogBmp 493 by 312 pixels,
this bitmap will appear on
the first page of the installer.-->
<WixVariable Id="WixUIDialogBmp" Value="path\dialog.bmp" />
IsWiX has project templates that pick up where the rather terse project templates from WiX leave off. Out of the box you get a Code and Resources folder and a series of WiX fragments that define standard things such as MajorUpgrades, common AppSearch/LaunchConditions and pulling in WiXUI with allowances for easily injecting a custom dialog by simply uncommenting out a line of XML.
https://github.com/iswix-llc/iswix/tree/main/Application/IsWiX2022AddIn/VotiveMSISolutionTemplate/SetupProjectTemplate
As the project coordinator I might be biased, but I just finished doing a bunch of UI work that previously I would have only dared doing in InstallShield.

WiX bootstrapper - disable a control using HexStyle

I have a WiX bootstrapper theme xml file, and I want to permanently disable a control. I have tried to set HexStyle to the value of WS_DISABLED (link). However the control is still enabled. Anyone knows if I can use HexStyle or know of another way of having a control permanently disabled. I use the WixStandardBootstrapperApplication.RtfLicense BootstrapperApplication.
The possible solution is to find Id of this control and then create Variable with postfix "State". I hope it should work:
<Variable Name="EulaRicheditState" Type="string" Value="disable" />

Wix Error ICE17: Bitmap: ' is launching

I'm trying to develop a Wix project. I'm using Wix 3.6, and everything goes perfect, except when I try to change the default interface of Wix to the WiUI_Mondo one.
I do the following to change the interface:
Add reference to WixUIExtension.dll
Add <UIRef Id="WixUI_Mondo" />
With these simple steps, I should be able to change the interface of my Wix installer. Instead, it is launching an error like this:
Error: ICE17: Bitmap: '
And no more text after the simple comma.
Any idea on why is this happening??
EDIT: This mistake comes from several .wxs files, such as PrepareDlg.wxs, FilesInUse.wxs...
I don't know the exact reason, but you can see in msdn what ice17 is testing:
ice 17 documentation

What are the binary references in WIX?

I've used the dark.exe to create a WXS file from my 'old' Visual Studio 2010 msi file.
When I open the created WXS file, It has binary references on the top of the file that I can't explain. Can somebody tell me about it? And where can I find some documentation about it?
<Binary Id="InstallUtil" SourceFile="C:\Temp\Binary\InstallUtil" />
<Binary Id="MSVBDPCADLL" SourceFile="C:\Temp\Binary\MSVBDPCADLL" />
<Binary Id="VSDNETCFG" SourceFile="C:\Temp\Binary\VSDNETCFG" />
<Binary Id="DefBannerBitmap" SourceFile="C:\Temp\Binary\DefBannerBitmap" />
<Binary Id="UpFldrBtn" SourceFile="C:\Temp\Binary\UpFldrBtn" />
<Binary Id="NewFldrBtn" SourceFile="C:\Temp\Binary\NewFldrBtn" />
The top three are giving me the most questions because I don't where there for and what they do.
Short answer - these files are used in ui dialogs, custom actions, all places where some files are applicable to the functionality of the setup itself, but the product it installs.
In your case, the first three are DLLs used by Visual Studio Setup Projects to perform custom actions - MSI extensibility blocks. The last three are the icons used in UI dialogs later in code.
To get the files themselves, you should use export binaries parameter for Dark.exe.
Now, your options here depend on what you want to achieve. If your task is just upgrade your setup to VS2012, quick and dirty, then use the exported files as they were, it should work.
If, however, you want to do it clean and nice, or you should update your setup with new features, then you will have to rewrite these.
For UI: if your project does not contain custom UI, I suggest switching to WIX UI library - nice and built-in. If you have custom UI, you may extend it, but it is a lot more work. There are visual UI editors for WIX.
For custom actions: custom action is something you use when MSI/WIX abilities do not give you enough. To upgrade these, you should look where these first three binaries are used, and how they are called. Usually, the meaning of custom action may be devised from its name. Then, you have to replace these custom actions with your own (or ready-made by others or WIX team) that do the same. Then you may remove the unused binaries.

Overriding banner image in Wix 3.5 Wixlib doesn't work in actual MSI

I am using several articles and other questions in order to override the banner bitmap images for a binary wixlib that I am using in 20+ other installers. This library provides our own custom UI, some custom dialogs, common resources, binaries, custom actions, etc.
Here is the code I am using in the wixlib to override the images:
<Binary Id="WixUI_Bmp_Banner" SourceFile="Bitmaps\bnnrbmp.bmp/>
<Binary Id="WixUI_Bmp_Dialog" SourceFile="Bitmaps\dlgbmp.bmp/>
But when I reference my wixlib in my actual MSI project, everything works except for the UI banner image overrides (my custom dialogs fire, process works, common binaries get installed, etc.). Is there something special I need to do in my binary wixlib project to override the UIExtension.wixlib default images in my own binary wixlib?
I saw this question here: Can WixUiBannerBmp be set in a wixlib?, however the answer to that question didn't answer the question, it was directly related to an icon and I'm not sure this guy was using a binary wixlib (re-distributable). My add/remove programs icon embedded in the wixlib already works just fine.
Images are specified via bind-time variables, not Binary elements. Your .wixlib can contain the variable values. The approach used in Can WixUiBannerBmp be set in a wixlib? doesn't use a .wixlib, but otherwise is the same. (A .wixlib is just a collection of .wixobj files.)
The WiX help file documents the variables in "Customizing Built-in WixUI Dialog Sets":
Replacing the default bitmaps
The WixUI dialog library includes default bitmaps for the background of the welcome and completion dialogs and the top banner of the other dialogs. You can replace those bitmaps with your own for product branding purposes. To replace default bitmaps, specify WiX variable values with the file names of your bitmaps, just like when replacing the default license text.
Example:
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />