检查wix Bootstrapper RegistrySearch bal:仅在安装时的条件

时间:2013-10-11 08:10:29

标签: wix wix3 bootstrapper

我正在使用wix为outlook addin创建一个bootsrapper。我必须在安装时检查outlook注册表搜索。我的检查在安装时工作正常。但是在我的addin安装之后,当有人卸载outlook然后尝试卸载我的加载项时,这个注册表serch检查也会在卸载时运行,这会导致阻止卸载程序。 我必须在安装时运行这些Outlook注册表搜索。我的检查如下:

<util:RegistrySearch  Variable="Outlook2013Present" Root="HKLM" Key="SOFTWARE\Microsoft\Office\15.0\Outlook\InstallRoot"   Value="Path" />
<util:RegistrySearch  Variable="Outlook2013Present64" Root="HKLM" Key="SOFTWARE\Microsoft\Office\15.0\Outlook\InstallRoot"   Value="Path" Win64="yes" />

<bal:Condition Message="This setup requires Outlook 2010 or 2013. Please install office and then run installer again ">
  Outlook2010Present OR Outlook2010Present64 OR Outlook2013Present OR Outlook2013Present64
</bal:Condition>

1 个答案:

答案 0 :(得分:3)

根据文档Wix Toolset Documentation WixBundleAction是WIX Bootstrapper中提供的BOOTSTRAPPER_ACTION。

在这里回答:Wix Installer Forum我想你可以尝试这样的事情:

<bal:Condition Message="This setup requires Outlook 2010 or 2013. Please install office and then run installer again ">

      (Outlook2010Present OR Outlook2010Present64 OR Outlook2013Present OR Outlook2013Present64 ) OR WixBundleAction = 3

</bal:Condition>

通过在条件子句中使用WixBundleAction = 3,条件仅对安装成立,并且在卸载期间将被忽略。

希望这有帮助。