2010-11-04 2 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.

0

Если вы хотите установить что-то еще в зависимости от того, установлен ли этот файл или нет, вы должны поместить те же условия в компонент (ы), содержащий это «что-то». Кроме того, рассмотрите возможность разделения связанного материала с функциями.