Thanx for quick answer. 
I will try to do multiinstances in a different way(not through installer).

One comment from my side after a few days trying to start it work. 
I think we need a little bit more control of installing process in BA 
application. 
If I had more control over package detect/apply/etc. proces, I could fix all 
problems I had.


31.07.2014, 21:28, "Rob Mensching" <r...@firegiant.com>:
> There is a feature request open for Burn to support multiple instances.
>
> -----Original Message-----
> From: serkbugs [mailto:serkb...@yandex.ru]
> Sent: Thursday, July 31, 2014 01:51
> To: wix-users@lists.sourceforge.net
> Cc: Sergey Kozhemyachenko
> Subject: [WiX-users] Multiple Instance installations from wix BA application
>
> Hi,
>
> Our customer wants to install multiple instances of windows service per each 
> service(like SQL server installation with multiple instances).
>
> I was trying to build a prototype using custom BA 
> application(Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperApplication).
>
> I've read a lot of topics around  InstanceTransforms in msi and it looks like 
> I can start it work from msi with msiexec /i MultiInstance.msi 
> MSINEWINSTANCE=1 TRANSFORMS=":I01" but I cannot understand how to run it 
> properly from BA.
>
> Here is some pieces from my prototype.
>
> Msi(please don't pay attention to extra actions and properties):
> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";
>       xmlns:util="http://schemas.microsoft.com/wix/UtilExtension";>
>     <Product Id="$(var.I00)" Name="$(var.ProductName32)" Language="1033" 
> Version="$(var.CurrentVersion)" Manufacturer="Me inc" 
> UpgradeCode="$(var.UpgradeGuid)">
>         <Package InstallerVersion="200" Compressed="yes" 
> InstallScope="perMachine" />
>         <MajorUpgrade AllowDowngrades="no" AllowSameVersionUpgrades="yes"
>                       DowngradeErrorMessage="You can't downgrade this 
> application" Schedule="afterInstallExecute" MigrateFeatures="yes"/>
>
>         <MediaTemplate EmbedCab="yes" />
>         <Feature Id="ProductFeature" Title="SetupProjectTest" Level="1">
>             <ComponentGroupRef Id="ProductComponents" />
>         </Feature>
>         <Property Id="PATHTOCOPY" Secure="yes"></Property>
>         <Property Id="PATHTOCOPYTO" Secure="yes"></Property>
>         <Binary Id='CustomAction' 
> SourceFile="$(var.TestCustomAction.TargetDir)TestCustomAction.CA.dll" />
>
>         <Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
>         <Property Id='REINSTALLMODE' Value='amus'/>
>         <Property Id='ServiceName' Value='Test Service Name 2'/>
>       <Property Id='INSTANCEID' Value='I01'>
>         <RegistrySearch Id="InstanceIdSearch" Root="HKLM" 
> Key="Software\[Manufacturer]\[ProductCode]\$(var.ProductName32)" 
> Name="InstanceId" Type="raw" />
>       </Property>
>         <InstanceTransforms Property='INSTANCEID'>
>           <Instance Id='I01' ProductCode='$(var.I01)' ProductName='I01'/>
>           <Instance Id='I02' ProductCode='$(var.I02)' ProductName='I02'/>
>           <Instance Id='I03' ProductCode='$(var.I03)' ProductName='I03'/>
>         </InstanceTransforms>
>     </Product>
> ........
>
> Bundle:
>
> <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="$(var.ProductName)" Version="$(var.CurrentVersion)" 
> Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeGuid)">
>
>       <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
>         <Payload 
> SourceFile="$(var.TestBootstrapperApplication.TargetDir)BootstrapperCore.config"/>
>         <Payload 
> SourceFile="$(var.TestBootstrapperApplication.TargetDir)TestBootstrapperApplication.dll"/>
>         <Payload 
> SourceFile="$(var.TestBootstrapperApplication.TargetDir)GalaSoft.MvvmLight.WPF4.dll"/>
>         <Payload SourceFile="c:\Program Files (x86)\WiX Toolset 
> v3.7\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>
>       </BootstrapperApplicationRef>
>
>         <Variable Name="DIR_EXISTS" Value="NO" Persisted="yes" Type="string" 
> />
>         <Variable Name="PATHTOAPP" Value="c:\program files 
> (x86)\SetupProjectTest\" Persisted="yes" Type="string" />
>
>       <Chain>
>             <PackageGroupRef Id="NetFx40Web" />
>             <PackageGroupRef Id="pkgMsi"/>
>         </Chain>
>
>     </Bundle>
> </Wix>
>
> another bundle file:
>  <Fragment>
> ......
>   <Variable Name='TRANSFORMS' bal:Overridable="yes"/>
>   <Variable Name='MSINEWINSTANCE' bal:Overridable="yes"/> ..........
>   <PackageGroup Id="pkgMsi">
>             <MsiPackage Id="package32"
>                   
> SourceFile="$(var.SetupProjectTest.TargetDir)\SetupProjectTest.msi"
>                   Vital="yes"
>                   LogPathVariable="WixBundleLog_package32"
>                   DisplayInternalUI="yes"
>                   EnableFeatureSelection="no"
>                   SuppressSignatureVerification="yes"
>                   ForcePerMachine="yes"
>                   InstallCondition="NOT TRANSFORMS"
>               <MsiProperty Name="INSTALLFOLDER" Value="[INSTALLFOLDER]"/>
>             </MsiPackage>
>
>             <MsiPackage Id="package32Multiple"
>                         
> SourceFile="$(var.SetupProjectTest.TargetDir)\SetupProjectTest.msi"
>                         Vital="yes"
>                         LogPathVariable="WixBundleLog_package32"
>                         DisplayInternalUI="yes"
>                         EnableFeatureSelection="no"
>                         SuppressSignatureVerification="yes"
>                         ForcePerMachine="yes"
>                         InstallCondition="TRANSFORMS"
>               <MsiProperty Name="TRANSFORMS" Value=":I01"/>
>               <MsiProperty Name="MSINEWINSTANCE" Value="[MSINEWINSTANCE]"/>
>               <MsiProperty Name="INSTALLFOLDER" Value="[INSTALLFOLDER]"/>
>             </MsiPackage>
>
>         </PackageGroup>
> I'm using the same msi but with different set of properties depends on some 
> settings in BA.
>
> In BA code I'm trying to ask engine to set state in state I need:
>
> private void OnPlanPackageBegin(object sender, PlanPackageBeginEventArgs e)
>         {
>            //I have a model of packages and their statuses
>             var package = this._bundle.Packages.FirstOrDefault(p => 
> p.Id.Equals(e.PackageId, StringComparison.CurrentCultureIgnoreCase));
>             if (package != null)
>             {
>                 e.State = package.RequestState; // is set to 
> RequestState.Present for packages I want to update
>             }
>         }
>
> After I run my bundle.exe for second time and change package state in the 
> state I need(also set TRANSFORMS and MSINEWINSTANCE) in OnPlanPackageBegin I 
> can see in my logs such strings:
>
> [14BC:101C][2014-07-31T04:45:25]i201: Planned package: package32Multiple, 
> state: Present, default requested: Absent, ba requested: None, execute: None, 
> rollback: None, cache: No, uncache: No, dependency: Unregister
> [14BC:101C][2014-07-31T04:45:25]i201: Planned package: package32, state: 
> Present, default requested: Absent, ba requested: Absent, execute: Uninstall, 
> rollback: Install, cache: No, uncache: Yes, dependency: Unregister
>
> As far as I understand main problem here that Engine detected package as 
> Present and it doesn't matter what I have in "ba requested".
>
> How can I change this behaviour?
> Are there any ways to say Engine execute action I need(Install, uninstall, 
> etc.) ?
>
> Any help will be really helpful.
>
> Regards,
> Sergey.
>
> ------------------------------------------------------------------------------
> Infragistics Professional
> Build stunning WinForms apps today!
> Reboot your WinForms applications with our WinForms controls.
> Build a bridge from your legacy apps to the future.
> http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> ------------------------------------------------------------------------------
> Infragistics Professional
> Build stunning WinForms apps today!
> Reboot your WinForms applications with our WinForms controls.
> Build a bridge from your legacy apps to the future.
> http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to