Hmmm. I generally want my immediate custom actions to behave the same in install, reinstall or upgrade. I generally block the running of immediate custom actions in uninstall if I don't need them.
I do have several scheduling custom actions, but only four: the VsdbCmd scheduler, the SqlPackage scheduler, the Local Group creator, and existing File Set Permissions schedulers have deferred sub-components. Since our databases are never uninstalled, the two database schedulers don't run at all in uninstall, and the Sql scripts are designed so that reinstall/repair is non-destructive. As much as I would like it, the specs for the Local Group and existing File Set Permissions schedulers never rollback (that's how the network guys want it), and they also don't run in uninstall. That being said, it is an interesting concept. I hadn't thought of testing installer states based on LUX documentation, so I'll have to explore that. Fault states, especially for things that use the ServerManager() constructor, might be very interesting. -- John Merryweather Cooper Build & Install Engineer - ESA Jack Henry & Associates, Inc.® Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 [email protected] www.jackhenry.com -----Original Message----- From: Bob Arnson [mailto:[email protected]] Sent: Thursday, January 10, 2013 11:43 PM To: [email protected] Subject: Re: [WiX-users] Hello - are you aware of test mutations?Kindly assist me with some answers On 08-Jan-13 10:54, John Cooper wrote: > Conceptually, it requires carefully embedding debug code in your working > immediate custom actions that is triggered only when the mutating variable is > set to certain values. The part about embedding debugging code into my > custom actions is a little scary. But having an immediate custom action > complex enough to require several different run scenarios is also scary. It's normal for a scheduling CA to run for scenarios like install, upgrade, uninstall, etc. That's probably the primary use case for mutations. The idea is that you have a variable of type WCA_TODO that's set normally, then overridden in an #ifdef DEBUG block to whatever the mutation is. The secondary use case is to allow you to inject faults so you can test your error handling. -- sig://boB http://joyofsetup.com/ ------------------------------------------------------------------------------ Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122812 _______________________________________________ WiX-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies. ------------------------------------------------------------------------------ Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122812 _______________________________________________ WiX-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-users

