After reading the page on SetProperty and looking at as many examples as I could find here and elsewhere, I'm still not able to get my SetProperty to work with After or Before set to one of my custom action IDs. The documentation seems very simple and straight forward on the subject (hah!), but I'm getting "Found an ActionRow with a non-existent After action: MyWonderfulCA" instead of happiness (which really is what I'm after : ) Here's a representation of what my code looks like:
<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>
So anyway, save me SOF wix pros, you're my only hope...
I'm not sure, but the following thing looks suspicious.
The <SetProperty>
(link) element has Sequence
attribute, which is optional. If you don't specify it (like in the sample you posted), it gets the value of both
, which means the custom action of type 51 (which is what SetProperty
translates to) is scheduled into both InstallUISequence
and InstallExecuteSequence
.
However, as far as I can see, you only schedule MyWonderfulCA
into the InstallExecuteSequence
. Hence, it makes me think that when WiX tries to schedule SetProperty
into the InstallUISequence
, it can't find the custom action specified in After
attribute and fails.
Check this out by either specifying the Sequence='execute'
explicitly, or by scheduling your wonderful CA into both sequence. If it is the case, then just choose the most appropriate way out of these two.