我目前正在处理DLL中的自定义操作,我将其导出以供WiX安装程序使用,我最近在运行安装程序时在日志中发现以下错误:
<exported_name_cut_off>: Error 0x8007007a: Failed to copy CustomAction log name: <exported_name_NOT_cut_off>
由于我对Windows编程和Wix相对较新,当我注意到错误消息中的DLL函数名被截断时,我立刻认为DLL中导出的函数名必须有31个字符的限制,但显然是不是这样;事实证明,这是我不知道的WiX的限制。
所以,我有两个问题:
DLL中导出或导入的函数名的长度是否有限制?我在MSDN帮助中找不到任何提及。如果它是相关的,我使用C ++进行编码并在Windows 7 x64上使用Visual Studio 2010。
我找到this,但遗憾的是,没有给出为什么在WiX中存在这样的限制的好答案。有没有人知道为什么它以这种方式受限?在大于3.5.2519(我正在使用的版本)的WiX版本中仍然如此吗?
答案 0 :(得分:3)
您可以控制传递给WcaInitialize的名称;它不必是实际的功能或自定义动作名称,因此您可以根据需要缩短它。 WcaLog *函数使用它来为日志记录添加前缀,因此它并不重要;如果你愿意,你甚至可以传递NULL。
WiX v3.6和v3.7 beta版本中仍存在限制。