I'm trying to embed a .dll into a wix installer that is used by other dlls during the install but will not be installed onto the customer's systems.
I've currently got
<Binary Id="AutomationUtils" SourceFile="AutomationUtils\bin\Release\AutomationUtils.dll" />
...
<CustomAction Id="Install" BinaryKey="InstallUILib" DllEntry="AutomationUtils;RunInstallerDLL" Return="check" Execute="deferred" />
but even if I take the other .dll out - WiX refuses to acknowledge the existance of the AutomationUtils .. even though it builds ok (but falls over when you try and run it).
The
BinaryKey='InstallUILib'
will refer to aBinary
element withId='InstallUILib'
. TheCustomAction/@DllEntry
attribute is the name of the function entry point into the custom action .dll in theBinary
element. That name needs that ::GetProcAddress() can access. I'm pretty sure a function namedAutomationUtils;RunInstallerDLL
is not valid.If you're looking to do managed code custom action (where you probably need multiple .dlls) this article is okay. Otherwise, if you're creating a native custom action, I recommend creating a single .dll.