Create msi with Wix Bootstrapper - wix

I have a working wix bootstrapper, chaining two wix msi installers, and it works fine.
The output file of the bootstrapper is an exe file, I am interested in changing the output file to be an MSI file, is it possible with bootstrapper?
If so, how do i achieve this?
Thanks.

No, it's not possible. Bootstrappers have to be executables, not MSI packages. If you want to write your own bootstrapper from scratch, you could use EmbeddedChainer to create an .msi with a chainer inside it, on Windows Installer 4.5 and later.

Related

Wix bootstrapper uninstalling MSI package in silent mode

I have an msi bundled with prerequisites using Wix bootstrapper (burn.exe).
We migrated this project from Installshield to WiX.
The installation works fine.
However, during repair or uninstall the bootstrapper runs the msi-file in silent mode.
Since the last dialog (e.g. 'SetupCompleteSuccess') within the msi file contains some controls to trigger some more actions.
Is there a possibility to configure the bootstrapper so that the msi file is executed in 'UI'-mode?
In WiX v3, it is not possible. Burn explicitly shows internal UI only during initial install. WiX v4 changes how that works: https://github.com/wixtoolset/issues/issues/5616

Wix Installer execute Bootstrapper

I created already a SQL Installation with my sqlinstalltionCommand using Wix Bootstrapper and I want to pass this exe to my WIX installer as a Prerequisite.
if I opened the SQL Installation it works very fine, but when I call it from WIX Installer it does not work. I know this is not ideal but i need it with my files. Any IDEA??
Running one installer from inside another is not supported. The bootstrapper project can run your prerequisites and your package in one. Do that instead.

Changing a property inside a WIX Bundle

My build system creates a MSI using Wix, it then uses WIX to bundle that into another EXE that acts as a bootstrapper. The bootstrapper makes sure all the dependencies are installed (.NET and so forth).
I would like to change some properties inside the MSI depending on who downloads it. I won't know the settings until long after the build is complete.
I am able to do that with the MSI by editing the properties DB. However when I try the same technique with the bundle, it (WIX interop libarary) says it can't open the file.
So, how can I do one of these things:
Edit a property inside the WIX bundle EXE (that I can then pass to the bundled package)
Extract and re-insert the bundled MSI
You can pass properties using commandline to wix bundle. The bundle then can pass the property to MSI.
WiX Bootstrapper: How do I set burn variables from the command line?
Pass parameters from bootstrapper to msi bundle package
The other solution I can think of: If you write your own custom bootstrapper, you'll have access to IBootstrapperEngine::SetVariable, and you can do whatever you want with that, including setting properties that MSI can read. https://wixwpf.codeplex.com/ should be pretty easy.
If you are asking if there is such tool like orca.exe for Wix burn, then I would say no.
Potential options:
Generate wix burn installer on the fly (including compilation)
Split up executable: set the Compressed attribute to "no". You'll have access to *.msi then.

Can WiX generate a MSI bootstrapper as opposed to an exe?

Is there a reason that the bootstrapper is an exe as opposed to an MSI? And, is there a way to instead generate a MSI?
I need to have multiple localizations of the bootstrapper and would like to apply transforms like can be done for a WiX MSI. And, since the bootstrapper uses the same localization files it'd be nice to be able to use the same approach for the bootstrapper as for an installer.
Many of the things being bootstrapped are MSI based, and you can't really run an MSI from within an MSI install. Bootstrappers are typically executables that contain one or more embedded MSI files - the executable checks if the prerequisite is installed or not, and if not launches the appropriate MSI installs, patches, whatever else is in there.

MSI installer calling another MSI installer in silent mode using WiX

I'm using WiX to make an MSI installer to call another MSI installer.
I can resolve this situation in UILevel=5 (Full UI) mode. My solution is add a CustomAction to the UISequence table that call another MSI. It will not get error code 1500: "Another installation is already in progress..."
But in slient mode, UILevel = 2, I can't do it, because it only runs CustomAction in ExecuteSequence.
How can I run my MSI in silent mode and call another MSI installer?
Install both MSIs with the Burn bootstrapper included with wix 3.6.
Strictly speaking MSI files are transactional installers so they can only occur one at a time.
Microsoft get around this with merge modules which are like MSI but are used for embedding in MSI files.
Any chance the MSI you want to embed could be changed to be an MSM file?