wix MSI与自定义动作DLL在wcautil函数上死亡

时间:2012-04-01 23:52:07

标签: visual-c++ wix windows-installer

我正在构建一个.msi,它引用了用C ++编写的自定义动作DLL。我可以在Visual Studio 2010中构建自定义动作DLL,一切都很好 - 引用了wcautil.h,dutil.h等。然而,当我将DLL添加到我的.msi时(它正确地获取了一个引用)二进制表,以及键等等看似合理),它在自定义DLL中对ExitOnFailure的第一次引用时死掉。我猜这意味着wcautil.lib不会与DLL / .msi一起出现,但我不知道为什么会这样 - DLL确实包含wcautil_2010.lib(以及dutil_2010.lib和msi) .lib)在附加库依赖项列表中(它们来自模板VS项目。)

有人知道如何判断wcaUtil和dutil是否与.msi实际存在?或者我需要做些什么才能确保它们存在,以便从WiX执行Wca功能?

1 个答案:

答案 0 :(得分:0)

终于弄清楚发生了什么。在ExitOnFailure之前的WcaInitialize实际上返回了一个错误的错误代码(出于某种原因我读到日志记录不可用,因为DLL在MSI的UI阶段运行,并且误认为是意味着所有的消息框 - 事情也是如此。)错误代码表明DLL项目不包含Version资源,这似乎是一个bug,因为它是直接从Visual Studio中的模板Wix Custom Action DLL模板创建的。)一旦修复了事情还在继续。感谢所有有用的评论!