代码之家  ›  专栏  ›  技术社区  ›  Amith George

仅当满足某些条件时才设置WIX属性

  •  5
  • Amith George  · 技术社区  · 15 年前

    我想做的是:

    <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 回复  |  直到 15 年前
        1
  •  7
  •   Rob Mensching    15 年前

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

    对于appsearch(xxxsearch元素),您可以向appsearch元素添加类似上面的条件,以便它只在卸载期间运行。注意,调整appsearch元素将影响所有的xxxsearch元素。因此,如果您需要在安装过程中进行搜索,而只在卸载过程中进行另一个搜索,那么这是不可能的。

    附言:你想要的条件看起来像:

    Installed AND REMOVE="ALL"