Yes, I did (the two actions actually live in the same dll), but I got it
working. I can't remember how, exactly, but it was something with the
names referenced in the attributes of the CustomAction tag. Now all I
have to do is get my XmlConfig questions answered and I'm pretty much
done.

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Jason
Sent: Saturday, June 21, 2008 6:33 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] DTF custom action questions

Did you add a <Binary> element for each CA dll?

On Fri, Jun 20, 2008 at 3:25 PM, Evans, Jim
<[EMAIL PROTECTED]> wrote:
> Thanks Jason, this gets me most of the way to where I need. Let me see
> if I understand this correctly:
>
> * I create two <CustomAction> elements in my WiX project, one for the
> immediate custom action, one for the deferred.
>
> * Then, I schedule the immediate custom action using a <Custom>
element
> in my WiX project under the <InstallExecuteSequence> element.
>
> * In my C# code for the immediate custom action, I place a
> session.DoAction() call using the name of my deferred CA in the Id
> attribute of my <Custom> element.
>
> I've tried this with WiX 3.0.4214 and when I attempt to install the
> resulting .msi, I get an error 2721 ("Custom Action foo not found in
the
> binary table stream") when the installer attempts to schedule the
> deferred action. Looking in orca, everything looks right in the
> CustomAction table, but I'm clearly missing something simple here.
>
> --Jim
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Jason
> Ginchereau
> Sent: Friday, June 20, 2008 9:50 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] DTF custom action questions
>
> 1. In your <InstallExecuteSequence>, you could schedule your CA
relative
> to the WixSqlExtension CA like this:
>
>        <Custom Action="MySqlCA" After="InstallSqlData" ...
>
> You'll need to do the work in a deferred CA, because the
WixSqlExtension
> CAs do their work in the deferred phase. But it is a common pattern to
> invoke (schedule) a deferred CA directly from an immediate CA, so in
> that case you only need to author the immediate CA scheduling in WiX.
>
> 2. From an immediate CA, you can read the data from the Binary table
> into either a Stream or a file: open a View on the Binary table,
execute
> the View, fetch the Record, and then call one of the
Record.GetStream()
> overloads. Then you'll need to pass this data to a deferred CA because
> an immediate CA should not modify system state and a deferred CA
cannot
> read the MSI database. (And also because it needs to be after the
> InstallSqlData CA as mentioned above.) To pass that data, fill a
> CustomActionData object with the data and invoke the deferred CA with
> session.DoAction(deferredActionName, actionData). Then from within the
> deferred CA you can access that data as the session.CustomActionData
> property. Finally, don't forget about rollback and uninstall!
>
> 3. A DTF CA DLL is authored in WiX exactly like an unmanaged CA DLL.
You
> need a <Binary> element for the DLL, a <CustomAction> element for each
> CA entrypoint, and a <Custom Action=...> to sequence each call in
> <InstallExecuteSequence>. When it comes to the MSI/WiX authoring,
there
> are no additional elements you need to worry about just because the CA
> is managed or using DTF (other than perhaps a LaunchCondition to
verify
> .NET is available).
>
> Hope this helps.
>
> -Jason-
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Evans,
Jim
> Sent: Friday, June 20, 2008 4:24 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: [WiX-users] DTF custom action questions
>
> My installation creates and then interacts with a SQL Server database.
> Up until now, I've been able to do everything I need to do from WiX
> using the standard extensions, but now I'm facing a problem for which
I
> need a custom action.
>
>
>
> I have to import some data into my database, but I need to modify it
> based on information gathered during the installation. Here are my
> questions:
>
>
>
> 1.      How can I properly schedule my custom action to ensure it runs
> after my other SqlScripts and SqlStrings have been run?
> 2.      How can I use data files (stored in the MSI with the <Binary>
> element*) in my custom action? I don't want to actually install them
on
> the user's machine, just use them during the installation.
> 3.      I'm having a hard time getting my head around how to correctly
> author and deploy a DTF custom action. Using Votive, I'm able to build
> the CA assemblies properly, but what do I need to add in my WiX
project
> to make sure all of the elements are available to execute the custom
> action? DTF.chm has a good enough sample of C# code that I can follow
> the CA method creation, but can somebody point me to a sample fragment
> that includes all of the elements necessary to get a DTF CA to run?
>
>
>
> * I'm not wedded to using them as Binary streams in the MSI; if
somebody
> has a better suggestion, please feel free to chime in.
>
>
>
>
------------------------------------------------------------------------
> -
> 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
>

------------------------------------------------------------------------
-
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

Reply via email to