Creating wix installer to install at multiple paths - wix

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

Related

I need to remove feature selection screen from my wix installer

I have created a setup using wix installer, During installations user must have to install all features from feature tree, So I don't want to display this feature option screen during installation. Is there any way to achieve this.
Dialog Set: You can select a dialog set without this dialog? Default dialog sets. You are probably using Advanced or Mondo?
Mandatory Features: You can set all features to be mandatory? I guess you might already have done so. Then the user can not do any damage from the GUI (maybe they still can from msiexec.exe command line).
Custom Dialogs: You can create your own dialog set and take it out? Some details here.
Minimalistic sample
Zip version of Minimalistic sample

How to add an entry for WiX bundle to View Installed Updates menu in control panel?

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" ...>

Can we localize WIX msi and bundle using language selection UI at runtime?

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

how to create language transformation that will correctly change the ProductLanguage property in Wix

I have a MSI installer with some transform embed in it, I want to trigger this MSI with ProductLanguage property with multiply language like msiexec /i setup.msi TRANSFORM=1033, how to do it?
Thanks
Here is an approach which lets Windows Installer select the language automatically based on the target machine:
is it possible to create a multilanguage installer using WIX?
If you want to let the user select a language, the only solution is a custom EXE bootstrapper. This EXE should display a language selection dialog and apply the appropriate transform.

WiX Show Dialog Based on Feature to be Installed

Let me be upfront I am novice with WiX. I have a custom dialog CustomSetupTypeDlg.wxs that changes the Typical/Custom/Complete to Desktop/Server/Suite. It sets WixUI_InstallMode to InstallDesktop, InstallServer and InstallSuite appropriately.
I need to have the user browse for an installation folder depending upon what feature is to be installed. If InstallDesktop or InstallSuite is selected the user has to select two different paths for DESKTOPINSTALLDIRECTORY and SERVERINSTALLDIRECTORY. However if the install mode is InstallServer only SERVERINSTALLDIRECTORY choice should be presented.
I am uncertain on how to go about doing this.
You want to have actions in your InstallExecute sequence that display the dialogs you need. Inside the tag you provide a conditional, which, when true, causes the action to actually happen. See this tutorial, specifically section 5.3 for a list of conditionals.
I decided to simplify the project by splitting the desktop and server features into two separate installers.