VBScript在安装结束时未执行

时间:2016-03-07 17:48:45

标签: vbscript installshield

我在Visual Studio 2015中使用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上安装,安装程序要求我授予管理权限。

有关脚本无法正常工作的任何建议吗?

1 个答案:

答案 0 :(得分:0)

由于您提到了管理权限,我假设这不是每用户安装,并且INSTALLDIR通常位于每个计算机的位置。为了在操作期间获得所需的权限,您需要在系统上下文中调度它(或在系统上下文中提交)。但是,这样做将无法访问属性INSTALLDIR,因此您必须使用CustomActionData来检索它。

然后你可能会遇到一个不是由CScript或WScript托管的问题,所以对WScript方法的引用可能不起作用(我认为你的CreateObject("WScript.Shell")没问题,但是使用{可以更好地实现它的使用{1}})。

请注意,我不建议使用VBScript自定义操作,因为它们容易出现异常故障。