我在MSI安裝的Commit部分運行VBScript作爲自定義操作。腳本調用安裝ZB設備驅動程序的.exe文件。我想要做的是先檢查文件系統,看看驅動程序是否已經存在,如果是的話就跳過安裝。從MSI安裝中運行VBScript
到目前爲止,腳本是這樣的:
Sub Run(ByVal sFile)
Dim shell
Set shell = CreateObject("WScript.Shell")
shell.Run Chr(34) & sFile & Chr(34), 1, false
Set shell = Nothing
End Sub
Set objFSO = CreateObject("Scripting.FileSystemObject")
IF objFSO.fileExists("c:\windows\system32\drivers\ftser2k.sys") THEN
MsgBox("You already have the drivers installed.")
ELSEIF objFSO.fileExists("c:\windows\system32\ftserui2.dll") THEN
MsgBox("You already have the drivers installed.")
ELSE
Run Session.Property("CustomActionData") & "CDM20600.exe"
END IF
這些文件都在我的機器上存在。所以,如果我雙擊vbs文件,我會得到MsgBox來說我已經有了這個文件。但是,當我運行msi安裝時,無論它如何安裝驅動程序,就好像前兩個條件語句甚至不存在。我確實讀過你不能在MSI中使用WScript對象,所以我拿出了WScript.Echo行並用MsgBox替換它們。我想知道是否也可以在msi中使用FileSystemObject。
我的最終目標是不要有任何信息出現。如果文件存在於系統中,我只想要跳過驅動程序安裝。這些消息現在僅用於調試目的。
如果有幫助,msi包是在Visual Studio 2010中構建的。此外,CustomActionData是TARGETDIR。
我是新來的VBScript和安裝軟件包,所以請溫柔:)