23

在阅读了 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 专业人士,你是我唯一的希望......

4

1 回答 1

60

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

( link<SetProperty> )元素具有可选的属性。如果您未指定它(如您发布的示例中),它将获得 的值,这意味着类型 51 的自定义操作(即转换为的内容)被安排到和中。SequencebothSetPropertyInstallUISequenceInstallExecuteSequence

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

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

于 2013-06-19T06:24:43.443 回答