Reputation: 43
I’m lamenting the lack of documentation for the Wix Burn bootstrapper engine. I’m hoping I can get a few specific questions answered.
I know that the Burn engine requires .Net 4.0. It seems to have its own mini-bootstrapper that will install .Net 4.0 if it’s not present.
(1) .Net 4.5 is supposed to be an in-place replacement for .Net 4.0. Does the mini-bootstrapper recognize this and not install 4.0 if it sees 4.5 is present?
(2) My application and my custom bootstrapper require .Net 4.5. Can I tell the mini-bootstrapper to install 4.5 instead of 4.0?
This leads directly to questions about BootstrapperCore.config.
(3) How does the startup, supportedRuntime element tie into this?
(4) Where can I find the list of allowed values and the syntax for the version and sku attributes?
(5) If I want only 4.5, should I still include a supportedRuntime for 4.0?
(6) How does the host, supportedFramework element tie into this?
(7) If my custom bootstrapper requires 4.5, will it fail if I include a supportedFramework for 4.0, and 4.0 is present but 4.5 is not?
(8) If I require 4.5 and the target system already has 4.5.1 (or later), will Burn recognize this and skip installing 4.5?
Also, possibly non-related, what’s the difference between v4/Full and v4/Client?
Upvotes: 2
Views: 875
Reputation: 7878
0) This is wrong. The only thing that Burn requires is XP or later, .NET is not required.
1) Burn does not automatically install .NET 4 (see 0). The "mini-bootstrapper" is the ManagedBootstrapperApplicationHost (aka mbapreq
).
2) Before WiX 3.9, mbapreq
would only install one package - the one designated by the WixVariable WixMbaPrereqPackageId
. Starting with WiX 3.9, you can use the bal:PrereqSupportPackage
attribute to get mbapreq
to install multiple packages.
3) The startup
and supportedRuntime
elements are standard elements in a .NET configuration file and are documented on MSDN.
4) See MSDN documentation.
5) No.
6) The host
and supportedFramework
elements are defined by WiX. The supportedFramework
element was used to show that you support Client installs of .NET, since .NET 4.5 and later got rid of that you shouldn't specify any supportedFramework
elements. The host
element is used to tell mbapreq
which Assembly has your BootstrapperApplication class.
7) Yes.
8) mbapreq
will not show the "mini-bootstrapper" if it can load the .NET framework based on your BootstrapperCore.config. If the config file is not written correctly, where it successfully loads the .NET framework but can't load your BA, then it will silently fail (a log is always written to the temp directory, though). Burn does not try to install a package if its DetectCondition
is true.
Upvotes: 3