Eva*_*van 2 vbscript installshield custom-action
在InstallShield项目中,我有一个VBScript自定义操作,有条件地需要执行与安装一起打包的某个文件.
通常我使用代码来获取vbs的当前目录
sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
Run Code Online (Sandbox Code Playgroud)
其中,如果它返回启动安装的Setup.exe的位置,应该工作.
但是,在运行安装时,当前路径(在XP上)是C:\ Windows\system32而不是我期望的Setup.exe文件的位置.
假设我的InstallShield构建的输出如下所示
Disk1
->Setup.exe
->ISSetupPrerequisites
-->Req1
-->Req2
-->...
->OtherReqs
-->ConditionallyRunMe.exe
Run Code Online (Sandbox Code Playgroud)
我怎么能从VBScript自定义操作运行"\ OtherReqs\ConditionalRunMe.exe"?
谢谢!!
(注意:我意识到有一些方法可以使用InstallShield有条件地运行exe文件,但在这种情况下,InstallShield不支持这些要求 - 除非有办法使用VBScript自定义操作返回值作为运行另一个文件的条件? )
经过大量的搞乱后,我得到了它(实际上是在InstallShield手册中找到它,而不是谷歌,去图:))!
这行VBScript可以解决问题
disk1Path = Session.Property("SETUPEXEDIR")
Run Code Online (Sandbox Code Playgroud)
上面的行指向安装exe文件的位置,因此从那里运行安装介质中包含的任何exe都是微不足道的.
我找到的其他有用的东西,我将在这里作为参考
'points to app data\downloaded install directory
MsgBox Session.Property("SourceDir")
'where the software wants to install to on the users system
MsgBox Session.Property("INSTALLDIR")
Run Code Online (Sandbox Code Playgroud)
不知道为什么在MSI标准属性上找到一个很好的参考(甚至只是一个列表)是如此困难.我发现的最接近的是这个,但并非所有这些都有效(而且根本不适用于InstallShield).如果有人找到关于MIS标准属性及其描述的文档的良好链接,请在此处添加链接,因此没有人像我一样浪费尽可能多的时间:).
| 归档时间: |
|
| 查看次数: |
6225 次 |
| 最近记录: |