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 hasSequence
attribute, which is optional. If you don't specify it (like in the sample you posted), it gets the value ofboth
, which means the custom action of type 51 (which is whatSetProperty
translates to) is scheduled into bothInstallUISequence
andInstallExecuteSequence
.However, as far as I can see, you only schedule
MyWonderfulCA
into theInstallExecuteSequence
. Hence, it makes me think that when WiX tries to scheduleSetProperty
into theInstallUISequence
, it can't find the custom action specified inAfter
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.