wix MSI с библиотекой пользовательских действий умирает на функциях wcautil - PullRequest
0 голосов
/ 02 апреля 2012

Я создаю MSI, который ссылается на DLL-файл с пользовательским действием, написанную на C ++.Я могу создать DLL-файл с настраиваемым действием в Visual Studio 2010, и все в порядке - ссылки делаются на wcautil.h, dutil.h и т. Д. Однако, когда я добавляю DLL в свой MSI-файл (он правильно получает ссылку вДвоичная таблица (и ключи и тому подобное кажутся разумными), она умирает при первой ссылке на ExitOnFailure в пользовательской DLL.Я предполагаю, что это означает, что каким-то образом wcautil.lib не поставляется вместе с DLL / .msi, но я не знаю, почему это так - библиотека DLL включает в себя wcautil_2010.lib (и dutil_2010.lib, и msi.lib) в списке дополнительных библиотечных зависимостей (они были там из проекта VS).

Кто-нибудь знает, как я могу определить, действительно ли wcaUtil и dutil присутствуют в .msi?Или что мне нужно сделать, чтобы убедиться, что они присутствуют, чтобы выполнялись функции Wca от WiX?

1 Ответ

0 голосов
/ 03 апреля 2012

Наконец-то разобрался, что происходит.WcaInitialize перед ExitOnFailure фактически возвращал неверный код ошибки (по какой-то причине я читал, что ведение журнала не было доступно, так как DLL работает во время фазы пользовательского интерфейса MSI, и ошибочно принимал это за то, что все messagebox-материал был также.) Код ошибки указал, что проект DLL не содержал ресурс Version, который выглядит как ошибка, так как он был создан непосредственно из шаблона Wix Custom Action DLL в Visual Studio.) Как только это было исправленоДела продолжались.Спасибо за все полезные комментарии!

...