我使用WiX創建MSI,並且MSI接受用戶輸入屬性作爲安裝程序邏輯將使用的文件名的路徑。我試圖通過確定該文件是否存在來驗證屬性,但是對於完整的文件路徑,我無法弄清楚如何獲得該文件以配合DirectorySearch
和FileSearch
模式。具有完整文件路徑的WiX安裝程序FileSearch
所以,說用戶運行MSI像: msiexec /i myinstaller.msi CUSTOMFILE="C:\test\input.txt"
然後,我會需要運行類似:
<Property Id="CUSTOMFILEEXISTS">
<DirectorySearch
Id="LocationConfigDirSearch"
Path="[CUSTOMFILE_DIR]" Depth="0">
<FileSearch Name="[CUSTOMFILE_FILENAME]"></FileSearch>
</DirectorySearch>
</Property>
但我:
- 想不通如何將文件名拆分爲其部分。像
Path.GetDirectory([CUSTOMFILE])
和Path.GetFileName([CUSTOMFILE])
將是理想的。要麼; - 無法確定如何使用原樣使用完整文件名來確定文件是否存在。例如,
DirectorySearch
爲IgnoreFileName="true"
屬性,但我知道這樣的屬性不存在。
我是否需要去編寫擴展代碼或自定義操作的範圍?我希望這是一個足夠簡單的要求,它不需要那麼遠。
使所有這些更簡單的另一種方法是不要在您的安裝程序中進行配置。你可以推遲到應用程序首次運行?這並不總是可能的。 –
我們需要知道input.txt文件中的內容。 –
不僅如此,而且是什麼樣的應用。例如,「第一次運行」對於說windows服務來說效果不好。 –