Hi,

I have built a managed custom action to check if a UNC path exists.  I'm
not installing to this path.  This path is simply being set as the value
of a .config file setting during the install.  I just want to verify
that it is a valid path.  The custom action is defined as follows:

[CustomAction]
public static ActionResult DirectoryExists(Session session)
{
CustomActionService service = new CustomActionService();
return service.DirectoryExists(session);
}

I created the custom action project using the Visual Studio template for
a C# custom action.  This custom action expects a
"_DirectoryExists_Path" property to contain the path to check.  And it
populates a "_DirectoryExists_Result" with a "yes" (true) or "no"
(false) result.  The custom action is just calling
System.IO.Directory.Exists() to do the check.  I have the custom action
defined in the installer like so:

<CustomAction Id="CheckArchiveDirectory"
BinaryKey="AppDevInstallCustomActions.dll" DllEntry="DirectoryExists"
Execute="immediate" Return="ignore" Impersonate="yes" />

And to be called in the UI, like so:

<Publish Dialog="ServiceOptionsDlg" Control="Back" Event="NewDialog"
Value="ServiceCredentialsDlg">1</Publish>
<Publish Dialog="ServiceOptionsDlg" Control="Next"
Property="_DirectoryExists_Path" Value="[ARCHIVE_PATH]"
Order="1">1</Publish>
<Publish Dialog="ServiceOptionsDlg" Control="Next" Event="DoAction"
Value="CheckArchiveDirectory" Order="2">1</Publish>
<Publish Dialog="ServiceOptionsDlg" Control="Next" Property="VErr_Text"
Value="The archive path specified does not exist."
Order="3"><![CDATA[_DirectoryExists_Result = "no"]]></Publish>
<Publish Dialog="ServiceOptionsDlg" Control="Next" Event="SpawnDialog"
Value="ValidationErrDlg" Order="4"><![CDATA[_DirectoryExists_Result =
"no"]]></Publish>
<Publish Dialog="ServiceOptionsDlg" Control="Next" Event="NewDialog"
Value="VerifyReadyDlg" Order="5"><![CDATA[_DirectoryExists_Result =
"yes"]]></Publish>

When run to the installer and click the "Next" button, I get the
spinning blue wheel of death.  I've tried adding a
"System.Diagnostics.Debugger.Launch();" line to the above code but the
debugger is never launched.  If I run a verbose log, it just ends at the
line before the custom action call.  Here's the last 5 lines:

Action 10:41:55: ServiceOptionsDlg. Dialog created
MSI (c) (20:44) [10:41:57:524]: Doing action: CheckArchiveDirectory
Action 10:41:57: CheckArchiveDirectory. 
Action start 10:41:57: CheckArchiveDirectory.
MSI (c) (20:6C) [10:41:57:541]: Invoking remote custom action. DLL:

I'm stumped.   Any ideas or tips for debugging this would be
appreciated.  I'm also encrypting (and decrypting) my .config files
using this same managed custom action dll, so I know the DLL is
partially working.  These custom actions are scheduled in the
InstallExecuteSequence after "InstallFinalize", however.

Thanks,

Chris McKinnon



The information contained in this e-mail is confidential and may contain 
privileged information. It is intended only for the person or persons named 
above. If you are not an intended recipient of this e-mail please be advised 
that any distribution or copying of this e-mail is prohibited. If you have 
received this e-mail in error, please notify us by return e-mail and delete all 
copies of the e-mail and any attachments.
------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly 
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to