I have one .msi file (created with WiX) that creates one customized UI. I want to remove the title bar that comes by default. Is it possible to do that?
I have written the code in XML.
There is no option to customize the control bar.
You can bundle your MSI with a WiX Bootstrapper and create the UI you need.
Related
I have created a custom UI and provided the standard dialog boxes as required to avoid ICE20 errors. I have included the following line as required:
If I use a WIX UI this works fine. But now I've created my own custom UI I get an "unexpected error" message with error code 2814 and then one with 2869. Does anyone know how to catch the attempted downgrade to produce a dialog box with the correct message?
I am not an MSI dialog expert, but there are a few things I can point out:
You can customize the internal GUI built into an MSI.
You can also make your own GUI for Burn setup.exe launchers.
Burn GUIs can be more modern than the rather ancient MSI GUI.
A Burn launcher can hide the built-in MSI GUI during installation.
I am not sure what GUI you have customized?
Error 2814: The error code 2814: "On the dialog [2] the control [3] names a nonexistent control [4] as the next control." - this seems to indicate that a control on your dialog points to a non-existent control as the next one to go to for the TAB order of the dialog. You need to point to a valid control that exists and it should be visible too.
Custom MSI GUI: Making your own MSI GUI is rarely advisable unless you need something very specific and unusual. You can use existing dialog sets and just inject a new dialog (which might be what you have done). Due to the lack of flexibility for MSI dialogs I would recommend that you make a Burn setup.exe GUI if you really need a lot of flexibility. I have not looked at this a great deal.
WiX MSI Dialog Sample: There is a sample, modified WiX MSI dialog set here: https://github.com/glytzhkof/WiXCustomDialog
Links: I have a few links on MSI dialogs and Burn GUI. This is quite overlapping, please just skim and see what makes sense to you:
WIX Installer with modern look and feel
Changing text color to Wix dialogs
Wix default folder dialog
Removing Default dialogs from MSI
Other Links:
A very clever effort from Stefan Kruger to work around the MSI GUI dialog limitations: http://www.installsite.org/pages/en/msi/articles/MultiListBox/index.htm
Dynamically changing RTF content in the EndDialog after success
https://github.com/frederiksen/Classic-WiX-Burn-Theme
How to add image background to custom MSI dialog?
In general, a WiX bundle adds an entry to Uninstall a program menu in control panel. But, when I installed Visual Studio 2012 Update 4(It seems to be made by using WiX burn, maybe?) it added an entry to View Installed Updates menu in control panel. And I want my WiX update(patch) bundle (for my WiX installer bundle) to do like this. How can I achieve this?
You need to use a RelatedBundle element similar to the following:
<RelatedBundle Id="PUT-GUID-HERE" Action="Patch"/>
Here is the documentation for the allowable values. If Action="Patch" doesn't work, try Action="Addon" (it's been a while since I tried this so I'm not 100% which one will give you the desired results).
Set the attribute "ParentName" of Bundle element to your main product name. For example:
<Bundle ParentName="Your main product name" ...>
I want to hide the title bar of the dialog in a msi installer.
I don't think Windows Installer supports that (though someone might have a clever way).
The number of dialog style bits in Windows Installer is a reduced and specialized set.
--Dialog Box Overview
Instead, you could bundle your MSI with a WiX Bootstrapper and write your own Bootstrapper Application to present whatever UI you wish. Unless you select otherwise, the UI in MSIs are not shown by the bootstrapper.
The WiX installer itself is a good example of a frameless window. You can consult the source code for that.
I am trying to create a wix installer which will install to multiple paths (these location will be calculated at runtime through customactions). Installer will have multiple features.
e.g feature1 and feature2 will be installed on path1, feature1 and feature3 will be intalled on path2, and so on.
is there a way to achieve this?
Yes, it should be quite painless.
Idea is simple:
1) Create new Wix custom dialog, and hook it up between default dialogs.
2) In the custom dialog, use folder browser dialog, and set the property value.
3) You then later can use property value in order to show where you want to install it.
This should get you going; Use WiX browser dialog to set edit box value
We have an MSI and Bundle created in Wix. I need to localize both of these in such a way that language selection GUI will be popped-up and language can be selected by the user at run time. Would be really appreciated if anybody can help me on this.
For MSI, i am working on creating another bootstapper for bringing-up with language selection combobox and invoke the tranfomed MSI with the required transform(using command shell). I am still not sure about the feasibilty of this approach. I am facing issue in creating combo box in customized UI of bootstapper and invoking batch command to run this msi in the required language.
For Bundle - I am still working on finding a method. if anybody has any idea/samples for this.
It will be helpful if anybody can help me with this issue or provide me with an another alternative method to meet above requirement.
Thanks,
The recommended method (and for that matter, the method used by most MS products), is as you describe.
Create an MSI localized for each language
pick a base and generate MST's
Package the MSTs, the MSI and the bootstrapper, which will
present the language selection dialog and call MSIEXEC, passing TRANSFORM=language.mst as an argument
After the MSIEXEC process has started, all localization is finalized, so to speak. Any selection must go on outside the MSI system.
See this codeproject article for an example.
I guess this may help you:
creating language selection dialog using WiX.
there is a limitation that custom UI for language selection is created using C# based custom bootstrapper. This may lead to the requirement of .Net framework on host machine.
UI selection for MSI
Create an MSI localized for each language
Pick a base and generate MST's
Package the MSTs, the MSI into a bootstrapper.
Customize the HyperlinkTheme.xml to include radio button for selecting each language.
Use the Variable tag to link radio button from UI to .wxs file
Include the msi property in the msi tag and hard code the path to MST's and InstallCondition attribute to differentiate each selection
Use the latest version of wix for this feature support.
Bundle support only automatic base detection there is no support for UI selection