You need to set the burn variable MyBurnVariable1 to the value of your
ViewModel's InstallPath property before OnApply() is called. How you do that
depends on how your BA is structured.
One option would be to set that property in InstallExecute. Another would be to
have your ViewModel "bind" the two properties together.
Blair
> Date: Wed, 17 Jul 2013 17:41:07 +0530
> From: rahul8...@gmail.com
> To: wix-users@lists.sourceforge.net
> Subject: [WiX-users] Bootstrapper - Passing Installation Path to
> <MsiProperty> from Text Box in Bootstrapper UI
>
> Hi,
> I am trying to install MSI from Bootstrapper. Install location for that msi
> should be specified from the text box in Bootstrapper UI. I followed this
> below example. in this example I added a text box for getting install
> location and I added below code pieces,and MyBurnVariable1 gets the value
> from the textbox when bootstrapper is loaded for first time through Run
> method, After the bootstrapper is loaded if I change text box value then
> start to run the msi MyBurnVariable1 is not assigned with text box value
> because Run method is not executed now, what should I do to resolve this?
> I am following the below example.
> http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/
>
> View
> <TextBox Height="23" HorizontalAlignment="Left" Margin="153,65,0,0" Name
> ="textBox2" VerticalAlignment="Top" Width="120" Text="{Binding Path
> =InstallPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
>
> ViewModel
>
>
> private string installPath;
>
> public string InstallPath
>
> {
>
> get { return installPath; }
>
> set
>
> {
>
> installPath = value;
>
> RaisePropertyChanged("InstallPath");
>
> }
>
> }
> Bundle
>
> <Variable Name="MyBurnVariable1" bal:Overridable="yes" Type="string" Value="
> C:\Myfolder" />
>
>
>
> <Chain>
>
> <PackageGroupRef Id='Netfx4Full' />
>
> <MsiPackage SourceFile="
> ..\DummyInstaller\bin\Release\DummyInstaller.msi" Id="
> DummyInstallationPackageId" Cache="yes" Visible="no" >
>
> <MsiProperty Name="INSTALLFOLDER" Value="[MyBurnVariable1]" />
>
> </MsiPackage>
>
> </Chain>
> BA
>
> public class TestBA : BootstrapperApplication
>
> {
>
> // global dispatcher
>
> static public Dispatcher BootstrapperDispatcher { get; private set;
> }
>
> // entry point for our custom UI
>
> protected override void Run()
>
> {
>
> this.Engine.Log(LogLevel.Verbose, "Launching custom TestBA UX");
>
> BootstrapperDispatcher = Dispatcher.CurrentDispatcher;
>
> MainViewModel viewModel = new MainViewModel(this);
>
> viewModel.Bootstrapper.Engine.Detect();
>
> MainView view = new MainView();
>
> view.DataContext = viewModel;
>
> viewModel.Bootstrapper.Engine.StringVariables["MyBurnVariable1"]
> = viewModel.InstallPath;
>
> this.Engine.Log(LogLevel.Verbose, "My String from view: " +
> view.textBox2.Text);
>
> this.Engine.Log(LogLevel.Verbose,"My String from view
> model: "+ viewModel.InstallPath);
>
>
>
> view.Closed += (sender, e) =>
> BootstrapperDispatcher.InvokeShutdown();
>
> view.Show();
>
> Dispatcher.Run();
>
> this.Engine.Quit(0);
>
> }
>
> }
>
> Log details
>
> [1DB0:34C4][2013-07-17T17:36:06]i000: Setting string variable
> 'WixBundleName' to value 'My Test Application'
> [1DB0:34C4][2013-07-17T17:36:06]i000: Loading managed bootstrapper
> application.
> [1DB0:34C4][2013-07-17T17:36:06]i000: Creating BA thread to run
> asynchronously.
> [1DB0:2858][2013-07-17T17:36:06]i000: Launching custom TestBA UX
> [1DB0:34C4][2013-07-17T17:36:06]i100: Detect begin, 2 packages
> [1DB0:34C4][2013-07-17T17:36:06]i000: Setting string variable
> 'Netfx4x64FullVersion' to value '4.0.30319'
> [1DB0:34C4][2013-07-17T17:36:06]i000: Setting string variable
> 'Netfx4FullVersion' to value '4.0.30319'
> [1DB0:34C4][2013-07-17T17:36:06]i052: Condition 'Netfx4FullVersion AND (NOT
> VersionNT64 OR Netfx4x64FullVersion)' evaluates to true.
> [1DB0:34C4][2013-07-17T17:36:06]i101: Detected package: Netfx4Full, state:
> Present, cached: None
> [1DB0:34C4][2013-07-17T17:36:06]i101: Detected package:
> DummyInstallationPackageId, state: Absent, cached: None
> [1DB0:34C4][2013-07-17T17:36:06]i199: Detect complete, result: 0x0
> [1DB0:2858][2013-07-17T17:36:07]i000: Unsetting variable 'MyBurnVariable1'
> [1DB0:2858][2013-07-17T17:36:07]i000: My String from view:
> [1DB0:2858][2013-07-17T17:36:07]i000: My String from view model:
> [1DB0:34C4][2013-07-17T17:36:11]i200: Plan begin, 2 packages, action:
> Install
> [1DB0:34C4][2013-07-17T17:36:11]w321: Skipping dependency registration on
> package with no dependency providers: Netfx4Full
> [1DB0:34C4][2013-07-17T17:36:11]i000: Setting string variable
> 'WixBundleRollbackLog_DummyInstallationPackageId' to value
> 'C:\Users\Guest\AppData\Local\Temp\My_Test_Application_20130717173605_0_DummyInstallationPackageId_rollback.log'
> [1DB0:34C4][2013-07-17T17:36:11]i000: Setting string variable
> 'WixBundleLog_DummyInstallationPackageId' to value
> 'C:\Users\Guest\AppData\Local\Temp\My_Test_Application_20130717173605_0_DummyInstallationPackageId.log'
> [1DB0:34C4][2013-07-17T17:36:11]i201: Planned package: Netfx4Full, state:
> Present, default requested: Present, ba requested: Present, execute: None,
> rollback: None, cache: No, uncache: No, dependency: None
> [1DB0:34C4][2013-07-17T17:36:11]i201: Planned package:
> DummyInstallationPackageId, state: Absent, default requested: Present, ba
> requested: Present, execute: Install, rollback: Uninstall, cache: Yes,
> uncache: No, dependency: Register
> [1DB0:34C4][2013-07-17T17:36:11]i299: Plan complete, result: 0x0
> [1DB0:34C4][2013-07-17T17:36:11]i300: Apply begin
>
>
> Thanks for your help and time!!
>
> Regards,
> Rahul
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users