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

Reply via email to