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

idc*_*aar 18 custom-action wix

在阅读了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>
Run Code Online (Sandbox Code Playgroud)

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

Yan*_*nko 47

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

<SetProperty>(链接)元件具有Sequence属性,该属性是可选的.如果你没有指定它(就像你发布的样本中那样),它会得到值both,这意味着51类型自定义动作(SetProperty转换为的)被安排到两个InstallUISequenceInstallExecuteSequence.

但是,据我所见,你只安排MyWonderfulCA进入InstallExecuteSequence.因此,它让我觉得当WiX尝试安排SetProperty进入时InstallUISequence,它无法找到After属性中指定的自定义操作并失败.

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

  • 哇,即使在这里也没有明显的例子http://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html花了很多时间想知道我到底做错了什么.干杯! (5认同)
  • @berkus 我认为 WiX 文档应该获得“一颗棕星奖”这一令人自豪的成就,因为我们浪费了多少时间试图理解它是如何工作的。 (2认同)