如何通过bundle将参数传递给msi

时间:2014-12-08 11:42:20

标签: parameters cmd wix bundle

我需要的是在用户第一次选择的更新期间安装相同的模块。我只是试图传递wix的参数,但失败了https://stackoverflow.com/questions/27291103/to-start-process-passing-parameters-to-wix-installer

我已将变量添加到bootstrapper,以便将参数从命令行传递到msi。但它没有正常工作。 代码,添加到捆绑包:

 <Variable Name="INSTALL_SOFTWARE" bal:Overridable="yes"/>
 <MsiProperty Name="INSTALL_SOFTWARE" Value="[INSTALL_SOFTWARE]"/>

要更改的属性,默认为1。我还应该说可以从ui(radiobuttons)设置

   <Property Id="INSTALL_SOFTWARE">1</Property>

我正在使用此命令:

InstallerBundle.exe INSTALL_SOFTWARE=2

在GUI对话框中没有选择任何内容:

   <Control Id="SoftwareChoseButton" Type="RadioButtonGroup" Width="55" Height="128" X="34" Y="71" Property="INSTALL_SOFTWARE">
                <RadioButtonGroup Property="INSTALL_SOFTWARE">

据我所知,参数未通过....如何解决?

1 个答案:

答案 0 :(得分:0)

我认为您只需在捆绑包中指定这样的MsiProperty:

<MsiPackage Id='MyApp' Description='My Application' SourceFile="$(var.SetupMyApp.TargetPath)">
  <MsiProperty Name="INSTALLFOLDER" Value="[MyAppInstallLocation]"/>
</MsiPackage>

然后,假设myBootStrapper是您的BootstrapperApplication对象:

myBootstrapper.Engine.StringVariables["MyAppInstallLocation"] = "C:\MyApp";

在自定义引导程序代码中的某处,显然是在开始安装之前。