Vbscript 对VBS自定义操作InstallShield使用文件和目录键

Vbscript 对VBS自定义操作InstallShield使用文件和目录键,vbscript,installshield,Vbscript,Installshield,我想确认一下这个方法。在InstallShield中创建EXE自定义操作时,可以使用[DIRKey]调用项目目录,并使用[#FILEKey]调用文件。现在,我正在尝试对VBS自定义操作执行相同的操作。我在不同的系统上下文中设置了自定义操作,但不幸的是,这不起作用。我可以知道在VBS自定义操作中是否有相同的机制吗 谢谢 VBScript/JScript自定义操作是脆弱的。我建议在这里选择InstallScript、C++或C/d/dtf。 将[dirprop][#filekey]转换为完整路径需要

我想确认一下这个方法。在InstallShield中创建EXE自定义操作时,可以使用[DIRKey]调用项目目录,并使用[#FILEKey]调用文件。现在,我正在尝试对VBS自定义操作执行相同的操作。我在不同的系统上下文中设置了自定义操作,但不幸的是,这不起作用。我可以知道在VBS自定义操作中是否有相同的机制吗

谢谢

  • VBScript/JScript自定义操作是脆弱的。我建议在这里选择InstallScript、C++或C/d/dtf。

  • 将[dirprop][#filekey]转换为完整路径需要具有完全访问权限的MSI会话句柄。延迟的自定义操作缺少这一点。要克服这个问题,您必须让一个即时的custom操作进行评估,然后将其作为CustomActionData传递给延迟的自定义操作

  • EXE自定义操作绕过此问题,因为自定义操作会隐式调用两次。一次调度操作(立即),在这种情况下,转换是自动的,然后在实际执行的地方延迟一次

  • 在调用EXE时,有许多事情是不可能的。可以通过使用“窃取”DLL或将其封装在合并模块项目中并在InstallShield中使用来缓解(即使在InstallShield中也是如此)

  • 要意识到,定制操作不应该重新发明轮子。我不知道你的EXE是什么,但是如果有任何方法可以将它分解成可以由Windows Installer表达的片段,那么你的复杂性和风险将大大降低

  • 请记住,应该编写更改计算机配置的自定义操作以支持回滚。这意味着更多的自定义操作