我在VS2008中的部署项目安装中使用自定义操作。在那我复制一些应用程序需要我的包中的DLL文件夹。使用自定义操作,我将DLL'文件夹(在我的产品中安装的Program Files文件夹中)的dll复制到System 32或SysWOW64文件夹。 执行setup.exe时,我得到错误并安装关闭。
这是VBScript中的自定义动作编码
dim filesys,filepath,fileexist,sSerialNo,sysfolder
set filesys=CreateObject("Scripting.FileSystemObject")
MyProperties = Session.Property("CustomActionData")
arrMyProperties = Split(MyProperties, "|")
InstallDir = arrMyProperties(0)
AnotherDir = arrMyProperties(1)
sSerialNo = InstallDir
MsgBox sSerialNo //It shows C:\Program Files (x86)\Product
filepath = sSerialNo & "DLL\"
MsgBox filepath
fileexist = filepath & "*.dll"
MsgBox fileexist //It shows C:\Program Files (x86)\Product\DLL\*.dll
sysfolder = AnotherDir
MsgBox sysfolder //It shows C:\Windows\SysWOW64\
filesys.CopyFile fileexist,sysfolder
我已经给出了所有msg框以供检查。它在最后一行失败。在收到此错误之前,当我检查Programfiles时,我所有与产品相关的数据都已安装并可用。 在安装项目中,我将CustomActionData值赋予 [TARGETDIR] | [SystemFolder]
当我在Installshield Express版本中使用相同的脚本时,它可以正常工作。
在Installshield中,我使用System.Property()
方法获取System目录和Installed目录。
错误:"此Windows Installer程序包存在问题。无法运行此安装所需的程序。请联系您的支持人员或软件包供应商。"
我添加了三个自定义操作。 2.system.vbs - >在C盘中创建文件并编写安装路径。 此自定义操作正常
3..bat文件(防火墙设置)。我通过添加cmd.exe执行此操作,当我调用此自定义操作时发生错误
在所有这些习惯中,只有system.vbs正在运行。