If you wire up an installer class CA in VDPROJ and edit the resultant MSI in Orca you'll see that you are actually getting 2 CA's for each CA. Was is a Type 51 CA that's setting a property with the same name as the second deferred CA. This is the serialization of properties that the installcontext is deserializing for you.
So for DTF, whether it's WiX or InstallShield or whatever, you need an immeadiate CA that serializes and sets the property that will become CustomActionData and then in your deferred CA you need to deserialize it. The serialization looks something like this: ( shoot from hip coding, not tested ) CustomActionData cad = new CustomActionData(); cad.Add( new KeyValuePair<"PROPA","VALUEA"); session["DeferredCustomActionName"] = cad.ToString(); The deserialization looks something like this: CustomActionData cad = new CustomActionData(session["CustomActionData"]); string valuea = cad["PROPA"]; BTW, in case Jason is reading, maybe I'm missing something but the constructor choices for the CustomActionData class could probably be a little better. The CustomActionData property is always `CustomActionData` so maybe there should be an overload that takes the session class as an argument and automatically gets the CustomActionData property. I hope that helps. Regards, Chris Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me --- On Mon, 6/16/08, Phil H <[EMAIL PROTECTED]> wrote: > From: Phil H <[EMAIL PROTECTED]> > Subject: [WiX-users] DTF: Saving data in deffered custom action > To: wix-users@lists.sourceforge.net > Date: Monday, June 16, 2008, 6:34 PM > I have inherited some WIX code (ie I am a newbie) and have > moved the managed > custom action over to DTF (which is very nice BTW). > > Previously the CA did something along these lines: > > public class MyInstaller : > System.Configuration.Install.Installer > { > public override void > Install(System.Collections.IDictionary stateSaver) > { > base.Install (stateSaver); > stateSaver.Add(SS_KEY_INSTALLED_PROFILE, AddProfile()); > : > } > > public override void > Uninstall(System.Collections.IDictionary savedState) > { > : > bool didInstallProfile = > (bool)savedState[SS_KEY_INSTALLED_PROFILE]; > : > } > } > > > Using DTF how can I store a value during the install that I > can retrieve in > the uninstall? Note that I am using a deferred custom > action so the Database > etc properties of the DTF Session object aren't > available. > > Out of hope I tried session.CustomActionData but that > doesn't seem to > persist. > > TIA, > > Phil > > -- > View this message in context: > http://www.nabble.com/DTF%3A-Saving-data-in-deffered-custom-action-tp17858653p17858653.html > Sent from the wix-users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users