WiX DLL встраивание

Я пытаюсь встроить.dll в установщик wix, который используется другими библиотеками во время установки, но не будет установлен в системах клиента.

У меня сейчас есть

<Binary Id="AutomationUtils" SourceFile="AutomationUtils\bin\Release\AutomationUtils.dll" />
...
<CustomAction Id="Install" BinaryKey="InstallUILib" DllEntry="AutomationUtils;RunInstallerDLL" Return="check" Execute="deferred" />

но даже если я удалю другой.dll - WiX отказывается признать существование AutomationUtils ... даже если он работает нормально (но падает при попытке запустить его).

1 ответ

Решение

BinaryKey='InstallUILib' будет относиться к Binary элемент с Id='InstallUILib', CustomAction/@DllEntry атрибут - это имя точки входа функции в пользовательское действие.dll в Binary элемент. Это имя нуждается в том, чтобы ::GetProcAddress() мог получить к нему доступ. Я уверен, что функция с именем AutomationUtils;RunInstallerDLL не является действительным.

Если вы хотите выполнить настраиваемое действие управляемого кода (где вам, вероятно, нужно несколько DLL-файлов), эта статья подойдет. В противном случае, если вы создаете собственное настраиваемое действие, я рекомендую создать один.dll.

Другие вопросы по тегам