2010-11-04 159 views
1

我想看看Wix是否存在文件。我试过以下内容:Wix检查文件是否存在?

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

但似乎这个属性在启动时被初始化,然后再也不会。我在推迟的自定义操作期间创建文件。在这个行动之后,检查这个行为是否存在的最好方法是什么? (或强制财产重新填充)?

回答

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 
1

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

0

如果你想安装其他东西取决于是否安装了这个文件,你最好把相同的条件放在包含那个“东西”的组件上。另外,请考虑将相关内容分解为特征。