Burn only fails back to the MBA "prerequisite BA" if it can't create the AppDomain it needs. Look at BootstrapperApplicationCreate in src\ext\BalExtension\mba\host\host.cpp.
Introducing additional dependencies for a BA seems wrong to me. If you are using this custom dependency to modify machine state, you could accomplish this by adding the dependency earlier in the chain and having a later MsiPackage that could use custom actions to interact with the newly installed dependency. -----Original Message----- From: Nan Zang [mailto:naz...@microsoft.com] Sent: Wednesday, February 13, 2013 1:17 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] questions on bootstrapper After some investigation, it seems define Id="WixMbaPrereqPackageId" will accomplish what I need, however, I cannot get it work. <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> <Bundle Name="My Test Application" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="C82A383C-751A-43B8-90BF-A250F7BC2863" > <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost"> <Payload SourceFile="..\TestBA\BootstrapperCore.config"/> <Payload SourceFile="..\TestBA\bin\Release\TestBA.dll"/> <Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.6\SDK\Microsoft.Deployment.WindowsInstaller.dll"/> </BootstrapperApplicationRef> <Chain> <PackageGroupRef Id='OrgIdSignInAssistant' /> <MsiPackage SourceFile="..\DummyInstaller\bin\debug\DummyInstaller.msi" Id="DummyInstallernPackageId" Cache="yes" Visible="no"/> </Chain> </Bundle> <Fragment> <WixVariable Id="WixMbaPrereqPackageId" Value="OrgIdSignInAssistant" /> <WixVariable Id="WixMbaPrereqLicenseUrl" Value="Eula.rtf" /> <PackageGroup Id="OrgIdSignInAssistant"> <MsiPackage Id="OrgIdSignInAssistant" Cache="no" Compressed="yes" Permanent="yes" Vital="yes" SourceFile="E:\rmsonline\private\externals\IDCRL\7.250.4303.0\MSI\msoidcrl.msi" /> </PackageGroup> </Fragment> </Wix> This is the log, this is modfied from the sample code. There is no prerequisite step gets invoked, Anything wrong here? [1F40:1700][2013-02-12T23:07:48]: Burn v3.6.3303.0, Windows v6.1 (Build 7601: Service Pack 1), path: C:\Users\nazang\Desktop\RMSSetupBA\BootstrapperSetup\bin\Debug\BootstrapperSetup.exe, cmdline: '/install /log setup.log /runas:administrator -burn.unelevated BurnPipe.{F434AAE5-B80D-43FF-8859-670E1B3D483E} {E175F3B6-186C-445D-A861-3BDC024177A4} 12900' [1F40:1700][2013-02-12T23:07:48]: Setting string variable 'WixBundleLog' to value 'e:\wix\Dev\wix37\setup.log' [1F40:1700][2013-02-12T23:07:48]: Setting string variable 'WixBundleOriginalSource' to value 'C:\Users\nazang\Desktop\RMSSetupBA\BootstrapperSetup\bin\Debug\BootstrapperSetup.exe' [1F40:1700][2013-02-12T23:07:48]: Setting string variable 'WixBundleName' to value 'My Test Application' [1F40:1700][2013-02-12T23:07:48]: Loading managed bootstrapper application. [1F40:1700][2013-02-12T23:07:49]: Creating BA thread to run asynchronously. [1F40:3B48][2013-02-12T23:07:49]: Launching custom TestBA UX [1F40:1700][2013-02-12T23:07:49]: Detect 2 packages [1F40:1700][2013-02-12T23:07:49]: Detected related bundle: {4d72440b-3501-4b0c-9ee3-2fae6b7e4716}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None [1F40:1700][2013-02-12T23:07:49]: Detected related bundle: {63379848-f823-4d73-9364-83bebc1528b2}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None [1F40:1700][2013-02-12T23:07:49]: Detected related bundle: {886235b4-2f08-4c05-916f-d75266a07525}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None [1F40:1700][2013-02-12T23:07:49]: Detected package: OrgIdSignInAssistant, state: Absent, cached: None [1F40:1700][2013-02-12T23:07:49]: Detected package: DummyInstallernPackageId, state: Present, cached: Complete [1F40:1700][2013-02-12T23:07:49]: Detect complete, result: 0x0 ________________________________________ From: Nan Zang Sent: Tuesday, February 12, 2013 8:43 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] questions on bootstrapper Jocob, Thank you for your detailed answer. I have another question related to 1. Besides .Net 3.5, I need another dependency (eg. CredUI.msi) for my BA UX. I need to use this dependency in one of my BA UX. Is there possible I get it installed automatically before my BAUX gets launched. I tried the chained package approach, and found the installation of the credUI.msi will be invoked when the MSI is launched. That doesn't meet my requirement. Is that possible to invoke the installation action early? Thanks, Nan ________________________________________ From: Hoover, Jacob Sent: Tuesday, February 12, 2013 7:34 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] questions on bootstrapper 1. . Because this is a feature on 2008R2, this method fails and says need to enable the feature to install the framework. http://blogs.msdn.com/b/sqlblog/archive/2010/01/08/how-to-install-net-framework-3-5-sp1-on-windows-server-2008-r2-environments.aspx And a previous discussion: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Burn-NET-3-5-on-Windows-2008-R2-td7580032.html And I believe this is the feature Rob was speaking of: http://sourceforge.net/p/wix/feature-requests/643/ In short, burn currently doesn't gracefully support this. One could modify the WixStdBA to detect the OS level, and if the OS is 2008R2 then enable the feature instead of invoking the default installer. From a quick dive, it looks to me that a MBA will fall back to WixStdBA using a mbapreq theme, but I can't seem to find the specific fragments they are feeding in for installing 3.5 (I can find 4.0+). From a high level, I don't know how Wix identifies which prerequisite maps to the .Net framework. If I were a betting man, they are relying on the .Net framework install requesting a reboot. And that it's the first PackageGroup/PackageGroupRef in the chain. Some people have fallen back to using a stub exe with command line parameters to enable the feature. You then can use conditions to only invoke the stub on your target OS's (I would include this in the PackageGroup you created for the 3.5 framework). 2. BA's should not modify system state for anything other than what the engine already does. If you need to modify system state, use a lite weight MSI with your registry keys in them and property drive any variables you need to assign. Jacob -----Original Message----- From: Nan Zang [mailto:naz...@microsoft.com] Sent: Tuesday, February 12, 2013 5:10 PM To: General discussion for Windows Installer XML toolset. (wix-users@lists.sourceforge.net) Subject: [WiX-users] questions on bootstrapper Hi, I am working on a setup program which needs to meet the following requirements. I tried to use bootstrapper to accomplish those, but, didn't figure out a way to do so. Thank you in advance for any help or hint. 1. Is that possible to install a dependency automatically which will be used by the customize BA UI? For example, my customize UI is written in WPF and will require .Net 3.5 is enabled on 2008R2. My question is, is there possible to detect if the feature is enabled, and if not enable it automatically? I am using the .Net 4 bootstrapper sample code as an example, and found the installation of the packages will be invoked when the MSI is launched. That doesn't meet my requirement, since I need it before the UI. Is that possible to invoke the installation action early? 2. Is there possible to launch Bootstrapper as elevated? I am following the UAC guide to create a manifest for my bootstrapper.exe, as follows, but whenever I add the following line to the wixproj, and the dialog asking for admin permission shows up but the BAUX doesn't get launched any more. Is there any guidance how to deal with this? My custom UI setup requires write a bunch of regkeys. <Target Name="AfterBuild"> <Exec Command=""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\mt.exe" -manifest $(ProjectDir)$(TargetName).exe.manifest -outputresource:$(TargetDir)$(TargetFileName)" /> </Target> Thank you, Nan ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users