我正在尝试查看Wix是否存在文件。我尝试过以下方法:
<Property Id="TEMPFILE" >
<DirectorySearch Path="[TempFolder]" Depth="0" Id="TempFolderDirectorySearcher">
<FileSearch Name="temp.txt"/>
</DirectorySearch>
</Property>
但似乎这个属性在启动时初始化然后再也没有。我在延迟的自定义操作期间创建文件。在该行动之后检查这种情况是否存在的最佳方法是什么? (或强迫财产重新填充)?
答案 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)
如果你想根据是否安装了这个文件来安装别的东西,你最好把相同的条件放到包含那个“东西”的组件上。另外,请考虑将相关内容分成特征。