I’m building a .msi which refers to a custom action DLL written in C++. I can build the custom action DLL in Visual Studio 2010 and everything is fine–references are made to wcautil.h, dutil.h, etc. When I add the DLL to my .msi, however (it correctly gets a reference in the Binary table, and the keys and such appear reasonable), it dies on the first reference to ExitOnFailure in the custom DLL. I’m guessing this means that somehow the wcautil.lib is not coming along with the DLL/.msi, but I don’t know why that would be–the DLL does include wcautil_2010.lib (and dutil_2010.lib, and msi.lib) in the additional library dependencies list (they were there from the template VS project.)
Anybody know how I can tell if the wcaUtil and dutil are actually present with the .msi? Or what I need to do to make sure they’re present so the Wca functions from WiX execute?
Finally figured out what’s going on. The WcaInitialize just ahead of the ExitOnFailure was actually returning a bad error code (for some reason I’d read that logging wasn’t available, since the DLL runs during the UI phase of the MSI, and mistook that for meaning that all messagebox-stuff was as well.) The error code indicated that the DLL project didn’t contain a Version resource, which seems like a bug, since it was created directly from a template Wix Custom Action DLL template in Visual Studio.) Once that was fixed, things continued. Thanks for all the helpful comments!