I have been using managec C++ CA's coded in Visual Studio 2003 for
installs.  You create a .NET dll and use unmanaged exports .e.g
__declspec(dllexport) int __stdcall MyCustomAction(MSIHANDLE hInstall);
All your logic is in the installation package and you don't have to leave a
carcass behind with the installed product as you do when using installutil.

Well, you get the picture.  One wrinkle, the VC 2005 requires linking to the
C++ CRT as a DLL when using .NET.  You have to use a manifest when linking
to the CRT, so if the same exact version that you built against in your CA
is not on the target machine, BAM!.

You might try writing the CA code in VB .NET,  or C#, decompile to IL,
augment your class with a static method using an unmanaged export in pure
IL, and recompile.  I have played around with this a bit in .NET 1.1.  Since
I am upgrading an installed product for 1.1 to 2.0, I am seriously going to
consider this as the C++ CRT DLL with its manifests is one strapping
headache, or I might just try to do everything in native code.

One thing you can do, which I've done before, is to create a native DLL that
embeds the managed assembly as a resource.  Extract the assembly, host the
CLR in native code, and run your CA.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to