【问题标题】:Wix check if file exists?Wix检查文件是否存在?
【发布时间】:2010-11-04 19:08:22
【问题描述】:

我正在尝试查看是否存在使用 Wix 的文件。我尝试了以下方法:

<Property Id="TEMPFILE" >
  <DirectorySearch Path="[TempFolder]" Depth="0" Id="TempFolderDirectorySearcher">
    <FileSearch Name="temp.txt"/>
  </DirectorySearch>
</Property>

但似乎此属性在启动时已初始化,然后再也不会初始化。我在延迟自定义操作期间创建文件。在该操作之后检查此属性是否存在的最佳方法是什么? (或者强制属性重新填充)?

【问题讨论】:

    标签: wix


    【解决方案1】:

    DirectorySearch 由 AppSearch 执行,它在安装过程中相当早地运行。延迟自定义操作也无法设置属性,所以我不确定如何才能完成您想要做的事情。我认为您需要检查您真正想要做什么,然后重新设计它以适应 Windows Installer 的工作方式。

    【讨论】:

      【解决方案2】:

      我能够使用自定义操作来完成这项工作。 VBScript 代码与此类似:

      'Set Dimension
      DIM fso
      Set fso = CreateObject("Scripting.FileSystemObject")
      
      ' Set our targetFile
      DIM targetFile
      targetFile = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%")
      targetFile= tempFile & "\temp.txt"
      
      ' Check to see if our file exists
      If ( fso.FileExists( tempFile ) ) Then
          Session.Property("TempFileExists") = "TRUE"
      End If
      

      【讨论】:

        【解决方案3】:

        如果您想根据是否安装了这个文件来安装其他东西,您最好对包含该“东西”的组件设置相同的条件。此外,请考虑将相关内容分离到功能中。

        【讨论】:

          猜你喜欢
          • 2021-12-25
          • 1970-01-01
          • 2021-07-22
          • 2013-07-17
          • 2012-12-23
          相关资源
          最近更新 更多