【发布时间】:2017-03-30 03:08:19
【问题描述】:
通过合并模块提供的 CustomAction 设置属性时是否需要任何特殊处理?我有两个自定义操作,提供三个属性,稍后在合并模块中使用。它们由通常的 C# 代码设置:
session["APPSRVPORT"] = port.ToString();
MSI 日志报告该属性已设置为一个值:
MSI (s) (C0!DC) [11:58:04:615]: PROPERTY CHANGE: Adding APPSRVPORT property. Its value is '11376'.
在安装组件时,以下语句用于安装使用上面填写的 MSI 属性的注册表值:
<RegistryValue Name="AppSrvPort" Value="[APPSRVPORT]" Type="string" />
但是日志显示此时该值为空:
MSI (s) (C0:AC) [11:58:06:208]: Executing op: RegAddValue(Name=AppSrvPort,,)
谁能告诉我如何解决这个问题?我已经检查过,执行顺序是否有效(即设置属性在操作“WriteRegistryValues”之前)
提前致谢!
【问题讨论】:
-
您能否确认自定义操作是即时的,并且实际上是在 WriteRegistryValues 之前安排的(根据表中的序列号,而不仅仅是日志中的位置)? (在合并模块中设置一个缺少 guid 后缀的非内置属性也有点奇怪,但这不是这里的问题。)
标签: wix windows-installer