wix SetProperty属性后不会采取自定义操作ID

时间:2013-06-19 01:52:58

标签: wix custom-action

在阅读了SetProperty上的页面并查看了我在这里和其他地方找到的尽可能多的示例之后,我仍然无法让我的SetProperty与After或Before设置为我的一个自定义操作ID。关于这个问题的文档似乎非常简单和直接(哈!),但是我得到了“找到一个不存在的动作后的ActionRow:MyWonderfulCA”而不是幸福(这正是我所追求的:)这里是表示我的代码是什么样的:

    <CustomAction Id="MyWonderfulCA" BinaryKey="MyWonderful.dll" DllEntry="MyWonderfulCA" Execute="immediate" />

    <InstallExecuteSequence>
        <Custom Action="MyWonderfulCA" After="LaunchConditions" />
    </InstallExecuteSequence>

    <Property Id="SOMEPROPERTY" />
    <SetProperty Id="SOMEPROPERTY" After="MyWonderfulCA" Value="[SOMEOTHERPROPERTY]the\yellow\brick\road">WEAREHUNKYDORY</SetProperty>

所以无论如何,救我SOF wix职业选手,你是我唯一的希望......

1 个答案:

答案 0 :(得分:41)

我不确定,但以下事情看起来很可疑。

<SetProperty>link)元素具有 Sequence 属性,这是可选的。如果您没有指定它(就像您发布的示例中一样),则会获得both的值,这意味着custom action of type 51(这是SetProperty转换为的)被安排到InstallUISequenceInstallExecuteSequence

但是,据我所知,您只需将MyWonderfulCA安排到InstallExecuteSequence。因此,我认为当WiX尝试将SetProperty安排到InstallUISequence时,它无法找到After属性中指定的自定义操作并失败。

通过明确指定Sequence='execute'或通过将精彩CA安排到两个序列来检查这一点。如果是这种情况,那么只需从这两种方法中选择最合适的方式。