2016-03-07 33 views
0

結束不執行我在Visual Studio 2015年的VBScript在安裝

創建使用InstallShield的安裝包,我還創建了應該在安裝後運行的腳本。

下面是這個腳本的代碼(對不起,意大利註釋):

'Recupero la proprietà INSTALLDIR 
Dim curfolder 
curfolder = Session.Property("INSTALLDIR") 


'CREO LA CARTELLA DB 
Dim oFSO, objFolder 
Set oFSO = CreateObject("Scripting.FileSystemObject") 

If (oFSO.FileExists(curfolder & "\DB\EnercomContext.sdf")) Then 

    'Cancello il Database dalla cartella dell'installer 
    oFSO.DeleteFolder(curfolder & "\Database") 

Else 

    Dim WshShell 

    'Copio L'icona nella directory windows 
    Set WshShell = CreateObject ("WScript.Shell") 
    WshShell.Run ("xcopy """ & curfolder & "\Icon\icona_enercom.ico""" & " " & """C:\Windows\icona_enercom.ico""") 

    'Creo la cartella 
    Set objFolder = oFSO.CreateFolder(curfolder + "\DB") 

    'Sposto il File di DB all'interno della cartella 
    oFSO.MoveFile curfolder & "\Database\EnercomContext.sdf", curfolder & "\DB\EnercomContext.sdf" 

    oFSO.DeleteFolder(curfolder & "\Database") 

End If 

的問題是,即使它在正確的InstallShield引用不執行這個腳本。我試過在Windows 10 PC上進行安裝,安裝程序要求我提供管理權限。

任何建議爲什麼腳本不工作?

回答

0

由於您提到了管理權限,我假設這不是每個用戶的安裝,並且INSTALLDIR通常位於每臺計算機的位置。爲了在您的操作中獲得所需的權限,您需要在系統上下文中延遲(或在系統上下文中提交)。但是,這樣做會失去對INSTALLDIR的訪問權限,因此您必須使用CustomActionData來檢索它。

然後,您可能會遇到一個問題,您不是由CScript或WScript託管的,因此對WScript方法的引用可能不起作用(我認爲您的CreateObject("WScript.Shell")可以,但使用FileSystemObject可能更好)。

請注意,我不建議使用VBScript自定義操作,因爲它們很容易出現異常故障。

相關問題