WIX:从链msi更改捆绑级别变量的值

时间:2019-06-27 12:51:59

标签: wix

我声明了一个捆绑包,一个又一个地安装3个应用程序。

1)数据库2)Web服务3)Web应用程序

在步骤1中- 我正在呼叫一个通过脚本安装数据库的MSI。在这里,我已获取服务器,数据库名称,用户名和密码。

我想将这些详细信息转发到STEP 3(将在步骤2之后调用),即MSI 3,它是捆绑软件的一部分。

我的问题是-

如何在STEP1中设置捆绑包级别变量PASSED_DATABASE?

如何在Step3中访问它?

<Bundle>    
 <Variable Name="PASSED_DATABASE" Type="string"  bal:Overridable="yes" Value="DefaultDatabase" />
    <Chain>
      <PackageGroupRef Id="myApp.Database"></PackageGroupRef>
      <PackageGroupRef Id="myApp.Service"></PackageGroupRef>
      <PackageGroupRef Id="myApp.ApplicationName"></PackageGroupRef>        
    </Chain>
  </Bundle>

<PackageGroup Id="myApp.Database">
  <MsiPackage
    Id="myApp.Database"
    DisplayName="myApp - Database"
    DisplayInternalUI="yes"
    Visible="yes"
    EnableFeatureSelection="yes"
    SourceFile="$(var.myAppDB.Installer.TargetDir)\myAPPDB.msi">
    <MsiProperty Name="PASSED_DATABASE" Value="[PASSED_DATABASE]"/>
  </MsiPackage>
</PackageGroup>

<PackageGroup Id="myApp.Service">
  <MsiPackage
    Id="myApp.Service"
    DisplayName="myApp Service"
    DisplayInternalUI="yes"
    Visible="yes"
    EnableFeatureSelection="yes"
    SourceFile="$(var.myApp.Service.TargetDir)\myApp.Service.msi">
    <MsiProperty Name="PASSED_DATABASE" Value="[PASSED_DATABASE]"/>
  </MsiPackage>
</PackageGroup>

1 个答案:

答案 0 :(得分:0)

我找到了将详细信息存储在注册表中并通过捆绑包进行访问的选项。 就我而言,效果很好。