无法将属性传递给WiX自定义操作

6

我读了如何将msiexec属性传递给WiX C#自定义操作?,但没有回答我的问题,或者也许我没有看到我做错了什么。 我的安装程序安装失败,日志显示我的属性在自定义操作集合中找不到。我的代码是:

    <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"];
1个回答

6

你第一个元素中的属性名必须与你想要传递值的延迟自定义操作的名称完全相同。因此,如果延迟操作是CreateDatabase,则第一个元素应该如下所示:

<CustomAction Id="SetCustomActionDataValue" Return="check" Property="CreateDatabase" Value="G=G2" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接