Wix工具集:连续检查条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Wix工具集:连续检查条件相关的知识,希望对你有一定的参考价值。

我试图在安装过程中检查两个条件,但需要系列检查:如果条件A为假 - 显示错误A,请不要检查条件B.

详情:我必须进行条件检查

  • 我的应用已安装
  • 数据库模式的版本

如果我的应用程序未安装 - 我需要显示错误消息并且不检查数据库架构,这会在安装期间导致未知错误。

<Property Id="MYAPPINSTALLED">
  <RegistrySearch Id="MyAppInstalledSearch"
                  Name="MyAppInstalled"
                  Root="HKLM"
                  Key="SoftwareMyAppInstalled"
                  Type="raw"
                  Win64="no" />
</Property>

 <Condition Message="!(loc.RequireMyApp)">
  <![CDATA[(MYAPPINSTALLED="1")]]>
</Condition>

<PropertyRef Id="GETSCHEMAVERSION"/> 

GETSCHEMAVERSION是在其他组件中使用的自定义操作,它尝试连接到数据库,如果计算机上没有MyApp,则会失败。

如果MYAPPINSTALLED条件通过,我该如何检查GETSCHEMAVERSION属性?

更新:GETSCHEMAVERSION自定义操作用于其他一些帮助应用程序。

答案

检查数据库架构的第二个自定义操作应该仅在安装应用程序时运行:

<Custom Action="CheckDbSchema">MYAPPINSTALLED="1"</Custom>

根据我的理解,该自定义操作应设置另一个属性,例如DBSCHEMAISOK1

然后,依赖于可用模式的组件可以用MYAPPINSTALLED="1" And DBSCHEMAISOK="1"来调节。

我可能会遗漏语法细节,但你应该明白这个想法。

以上是关于Wix工具集:连续检查条件的主要内容,如果未能解决你的问题,请参考以下文章

WIX 目录搜索总是失败

Wix 工具集 - 参考二进制文件 - 单独的 wxs 文件

Wix 在安装文件期间检查 netfreamwork 4

WiX 引导程序的示例应用程序(检查 .NET Framework 和 SQL Server 2005/2008)

如何根据目标机器(32 位或 64 位)有条件地使用 WiX 安装文件?

在 WIX Bootstrapper 中检查 .NET 4.0 框架时遇到问题