Wix检查文件是否存在?

时间:2010-11-04 19:08:23

标签: wix

我正在尝试查看Wix是否存在文件。我尝试过以下方法:

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

但似乎这个属性在启动时初始化然后再也没有。我在延迟的自定义操作期间创建文件。在该行动之后检查这种情况是否存在的最佳方法是什么? (或强迫财产重新填充)?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我能够使用自定义操作实现此功能。 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

答案 2 :(得分:0)

如果你想根据是否安装了这个文件来安装别的东西,你最好把相同的条件放到包含那个“东西”的组件上。另外,请考虑将相关内容分成特征。