使用JScript或VBScript进行CustomActions

时间:2010-07-15 17:21:45

标签: vbscript wix

在我的安装程序中,我需要执行以下操作:从注册表获取外部应用程序的位置,并为我的应用程序执行程序和此“父”目录中的各种文件创建文件夹。我知道如何从注册表中获取此目录,但遗憾的是我得到的字符串如下所示:C:/ Programm Files / Manufacturer / ExtApplication / extapp.exe。

当然,它不适合我。所以,据我所知,我需要从中删除“extapp.exe”部分。我试图通过使用VBScript或JScript的CustomAction来做到这一点,但我在这两个脚本中都没有足够的经验,也没有wix本身。我读了关于Type51,Type 35等CustomAction类型,但我无法得到我应该如何1)删除字符串的一部分; 2)在Directory元素中使用它; 3)在安装文件之前完成所有这些操作。

对任何建议(不使用Scripts)都会感激不尽。

1 个答案:

答案 0 :(得分:1)

首先,您不应该使用脚本自定义操作。它们非常脆弱:

http://blogs.msdn.com/b/robmen/archive/2004/05/20/136530.aspx

我将如何滚动:

1)使用RegLocator / AppSearch将注册表值拉入isntall开头的属性中。然后调出一个解析文件名的C ++自定义操作。应在CostInitialize之前安排此自定义操作。

你不会在这里使用51或35,你将使用类型1调用MsiSetProperty(),它与51类型相同.51和35之间的区别是你在成本计算之前使用51和35成本计算后。

您设置的属性名称应与您正在使用的目录表行的Id名称相匹配。该行中的任何子项都将与您设置它的路径相对。