我读过How do I pass msiexec properties to a WiX C# custom action?,但这并没有回答我的问题,或者我只是看不出我做错了什么。 我的安装包无法安装,日志说我的属性在自定义操作集合中找不到。我的代码是:
<CustomAction Id="SetCustomActionDataValue" Return="check" Property="Itp.Configurator.WixCustomAction" Value="G=G2" />
<CustomAction Id="CreateDatabase" BinaryKey="Binary1" DllEntry="CreateDatabase" Execute="deferred" Return="check" />
<InstallExecuteSequence>
<Custom Action='SetCustomActionDataValue' After="InstallFiles"/>
<Custom Action='CreateDatabase' After="SetCustomActionDataValue">
NOT Installed AND NOT PATCH
</Custom>
</InstallExecuteSequence>
自定义操作中的代码是:
string Property1 = session.CustomActionData["G"];
答案 0 :(得分:6)
第一个元素中的属性名称必须与要将值传递给的延迟自定义操作的名称完全相同。因此,如果延迟操作是CreateDatabase,那么第一个元素应如下所示:
<CustomAction Id="SetCustomActionDataValue" Return="check" Property="CreateDatabase" Value="G=G2" />