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:[email protected]]
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 <[email protected]>
To: General discussion for Windows Installer XML toolset.
<[email protected]>
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
[email protected]
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
[email protected]
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users