使用Burn设置属性值

时间:2013-08-24 12:27:26

标签: wix windows-installer

直到我在设置属性值时遇到问题,属性值是Bundle包中其他属性的结果。 我尝试过使用CustomAction,但没有运气。 在依赖于其他属性的bundle中设置属性值的正确方法是什么?

我的最终目标是检测VC ++ 2010 SP1 Redistributable的存在。 问题是用于检测它的Version注册表项在版本号之前具有前缀“v”,例如“v10.0.40219.325”。

我测试了它,发现当前缀“v”存在时,以下表达式无法正常工作:             InstallCondition =“NOT VC10_RUNTIME OR(VC10_RUNTIME< v10.0.40219.01)”>

所以我想从注册表中提取MajorVersion,MinorVersion,Bld,Rbld的值,并将它们连接成一个新属性。然后,我将使用InstallCondition和DetectCondition中没有“v”前缀的新属性。

我该怎么做?

谢谢

1 个答案:

答案 0 :(得分:1)

使用Wix 3.8.722,新功能允许您在C#中编写BAFunction.dll并读取OnDetectComplete中的属性(或直接读取注册表),然后为Condition设置属性。如果您使用来自wixextba.codeplex.com的WixBalExtensionExt.dll,您也可以在Wix 3.7中执行此操作