在Wix中设置属性值

时间:2014-03-27 15:19:42

标签: wix

我正在尝试将属性设置为安装目录。以下代码无效

<SetProperty Id="TALKMANSERVICE_MESSAGESCONFIG" Before="InstallInitialize" Value="[INSTALLDIR]\services\MessagesConfig.xml" />

那么我什么时候可以将此属性设置为客户选择的安装目录?

1 个答案:

答案 0 :(得分:1)

在CostFinalize之后的InstallExecuteSequence中安排它。这是必需的,因为您使用的值是[INSTALLDIR],它是一个目录表条目(假设它存在于您的MSI中,并且不会像INSTALLLOCATION那样调用其他内容),并且在文件成本核算之前,该条目将不会被解析为属性

另外,你为什么需要这个属性?您可以使用[#filekey]让安装程序告诉您文件的完整路径。请参阅:Formatted

  

•如果找到[#filekey]形式的子字符串,则将其替换为   文件的完整路径,其值为filekey,用作键入   文件表。 [#filekey]的值保持空白,不会被替换   通过路径直到安装程序运行CostInitialize操作,FileCost   action和CostFinalize操作。 [#filekey]的值取决于   文件所属组件的安装状态。如果   组件从源运行,值是到的路径   文件的源位置。如果组件在本地运行,那么   value是之后文件的目标位置的路径   安装。如果组件具有缺席的动作状态,则   组件的安装状态用于确定[#filekey]   值。如果组件的安装状态也不存在或为null,   [#filekey]解析为空字符串,否则解析为   值基于组件的已安装状态。欲获得更多信息   关于检查组件的安装状态,请参阅检查   安装功能,组件,文件。