I am building a C# Custom Action that will be called from dialog button
"Publish". The C# CA is working when called from the Publish Event="DoAction".
However, I can not get it to access the properties that have been set on the
dialog page that the push button control is on. After researching I saw how to
use another CustomAction to set the properties that can be accessed by the C#
DLL. I was not able to get the C# DLL (called from Publish) to get the
properties using this process. To test that my code was working I commented
out the Publish Event="DoAction", and modified the "InstallExecuteSequence" to
call the C# CA DLL by. I had to change the CustomAction for the DLL from
"Execute='immediate'" to 'Execute="deferred"'. The C# CA DLL was able to
correctly pick up the properties when I did this. I then commented out the
"InstallExecuteSequence" and uncommented the 'Publish Event="DoAction"', this
caused mye to get errors during the install. I then changed the CustomAction
for the DLL from 'Execute="deferred"' back to "Execute='immediate'". This fixed
the install error, but I'm now back at the original problem of not being able
to access the properties when the C# CA DLL is called from the 'Publish
Event="DoAction"'.
Is there a way for a C# CA DLL to access the properties when the CA is called
from a 'Publish Event="DoAction"'?
The reason why I want to do this is that I am taking the values of the
properties, performing some security operations on them and then storing them
into a series of registry entries that are dynamically created by the C# DLL.
I need to create the new registry entries from the C# DLL, instead of being
scripted in WiX.
Any suggestions and help will be appreciated.
I am using WiX 3.6.1112.0 + VS2010.
Snippets of code:
Control and Publish:
<
Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17"
Default="yes" Disabled="no" Text="!(loc.WixUINext)"
>
<
Publish Property ="CA.PARAMS1" Order ="1"
Value='"[INPUTPROP1],[INPUTPROP2],[INPUTPROP3]"'
/>
<
Publish Property ="CA.PARAMS2" Order ="1" Value='[INPUTPROP4]'
/>
<
Publish Property ="CA.PARAMS3" Order ="1" Value='[INPUTPROP5]'
/>
<
Publish Event="DoAction" Value="ca.PassParameters" Order="2">1</Publish
>
<
Publish Event="DoAction" Value="ca.My_WiXCustomActions.Sec1"
Order="3">1</Publish
>
</
Control>
CUSTOM ACTION FRAGMENT
<Fragment Id="Frag.CustomAction">
<Binary Id="bin.My_WiXCustomActions" SourceFile =
'My_WiXCustomActions.CA.dll' />
<CustomAction Id="ca.My_WiXCustomActions.Sec1"
BinaryKey="bin.My_WiXCustomActions"
DllEntry="Sec1"
Execute="immediate"
Return="check" />
<CustomAction Id="ca.PassParameters" Return="check"
Property="ca.My_WiXCustomActions.Sec1"
Value="[CA.PARAMS1], [CA.PARAMS2], [CA.PARAMS3]" />
</<Fragment>
------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users