wix - WIX:从链 msi(s) 更改捆绑级别变量的值
问题描述
我声明了一个捆绑包,它一个接一个地安装 3 个应用程序。
1)数据库 2)Web 服务 3)Web 应用程序
在第 1 步中 - 我正在调用一个从脚本安装数据库的 MSI。这里我获取了服务器、数据库名称、用户名和密码。
我想将这些细节带到第 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>
解决方案
我找到了将详细信息存储在注册表中并通过捆绑包访问它的选项。这对我来说效果很好。
推荐阅读
- java - 我如何在某个视角内与另一个代理(anylogic)进行通信?
- jenkins - 管道中每个阶段的 Jenkins 构建日志
- maven - jOOQ 不能自动生成类
- asp.net - 将 Web 应用程序发布到 IIS 时出现 HTTP 500 错误
- java - java.lang.AssertionError: Status expected:<200> but was:<404> 测试用例失败
- javascript - 通过绕过缓存强制浏览器使用 HTTP 或 HTTPS 打开网页
- c++ - 颜色未显示在 OpenGL 窗口中
- javascript - 想要修复联系表格,直到我们进入该特定部分
- python - 在 Beautifulsoup 的网络文章中查找某些名词
- deep-learning - 关于计算 log_sum_exp 中的一个代码段