I think I have solved this problem. The CA was scheduled in the InstallExecuteSequence and was marked as 'deferred' so I created the following 'Custom Data'.
<CustomAction Id="SetProperty" Property="CA_CheckCredentials" Value="[SERVICEUSER],[SERVICEPASSWORD]" /> <CustomAction Id="CA_CheckCredentials" Return="check" Execute="deferred" BinaryKey="CustomActionsDLL" DllEntry="CheckCredentials"/> And scheduled it like (I am trying to follow the instructions on page 133 of 'WiX: A Developer's Guide to Windows Installer XML' by Nick Ramirez) <InstallExecuteSequence> <Custom Action="SetProperty" Before="CA_CheckCredentials" /> <Custom Action="CA_CheckCredentials" After="InstallInitialize" /> </InstallExecuteSequence> Now I get the ICE warning: warning LGHT1076: ICE63: Some action falls between InstallInitialize and RemoveExistingProducts. Is this a "bad" warning? I don't completely understand why this scheduling is bad. I would like to know that the credentials are bad *before* the existing products are removed. If I look at the .msi generated with Orca I see that in the InstallExecuteSequence table InstallInitialize 1500 SetProperty 1501 CA_CheckCredentials 1502 RemoveExistingProducts 1503 This seems like a valid sequence to me but I am obviously missing something as the warning is there for a purpose. -----Original Message----- From: Christopher Painter [mailto:chr...@deploymentengineering.com] Sent: Wednesday, March 09, 2011 3:30 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] C# Custom Action questions If I had to guess you calling this CA as a ControlEvent off a Dialog / Control in your UI sequence. Am I correct? If so, it's a known issue that Msi lacks the ability to process messages in this scenario. The workaround is to set a dummy property to see a "PROPERTY CHANGED" message in the log file where the value is the data you are trying to log. 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 ----- Original Message ---- From: Kevin Burton <kev...@buyseasons.com> To: General discussion for Windows Installer XML toolset. <wix-users@lists.sourceforge.net> Sent: Wed, March 9, 2011 3:24:17 PM Subject: [WiX-users] C# Custom Action questions I have a very simple C# Custom Action that is supposed to verify credentials: using Microsoft.Deployment.WindowsInstaller; namespace BuySeasons.BsiServices.Install { public class CustomActions { [CustomAction] public static ActionResult CheckCredentials(Session session) { session.Log(string.Format("Begin CheckCredentials - {0}/{1}", session["SERVICEUSER"], session["SERVICEPASSWORD"])); bool valid = false; using (PrincipalContext context = new PrincipalContext(ContextType.Domain, "ASGARD")) { valid = context.ValidateCredentials(session["SERVICEUSER"], session["SERVICEPASSWORD"]); } if(valid) return ActionResult.Success; else return ActionResult.Failure; } } } It is included in the WiX Product as <Binary Id="CustomActionsDLL" SourceFile="C:\Projects\....\bin\$(var.Configuration)\BrainCustomActions.CA.dll" /> <CustomAction Id="CA_CheckCredentials" Return="check" Execute="deferred" BinaryKey="CustomActionsDLL" DllEntry="CheckCredentials"/> And scheduled as: <InstallExecuteSequence> <Custom Action="CA_CheckCredentials" After="InstallInitialize" /> </InstallExecuteSequence> This all compiles to a .msi without error. I can see CA_CheckCredentials in Orca just where I want it. But it doesn't seem to be called. I look at the verbose log and the closest reference I see is: Action start 14:56:05: InstallInitialize. MSI (s) (B0:4C) [14:56:06:052]: Doing action: CA_CheckCredentials MSI (s) (B0:4C) [14:56:06:052]: Note: 1: 2205 2: 3: ActionText I don't see the string 'Begin CheckCredentials' as in the code above. What do you think I have done wrong? ------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users