仅在满足特定条件时才设置Wix属性

时间:2009-07-31 23:09:51

标签: wix installation wix3

我想做的是:

<Property Id="LICENSEKEYPATH">
      REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE
      <DirectorySearch Id="ProgramDataSearch" AssignToProperty="yes" Depth="4" Path="[#ProductDirInAppData]">
        <FileSearch Id="LicenseFileSearch" Name="lic-conf.enp"/>
      </DirectorySearch>
</Property>

当我的应用程序被卸载时,只有这样,我是否要搜索许可证文件并获取其路径。目前,虽然代码没有给出任何错误,但即使我正在安装文件,它仍然会搜索许可证文件路径。因此,设置会延迟很长时间。更重要的是,wix设置在第一个屏幕中显示为搜索此属性然后继续其他屏幕。

那么,如何在卸载期间搜索文件或设置属性值?

1 个答案:

答案 0 :(得分:7)

您可以使用SetProperty元素控制属性的设置。这只是注册自定义操作的快捷方式。您可以使用文本元素中的Conditoin控制SetProperty执行的时间。

对于AppSearch(XxxSearch元素),您可以向AppSearch元素添加上述条件,以便它仅在卸载期间运行。请注意,AppSearch元素的调节将影响所有XxxSearch元素。因此,如果您需要在安装期间进行搜索并且仅在卸载期间进行另一次搜索,那么这是不可能的。

PS:您想要的条件如下:

Installed AND REMOVE="ALL"