0

我目前正在处理我导出以供 WiX 安装程序使用的 DLL 中的自定义操作,我最近在运行安装程序时在日志中发现了以下错误:

<exported_name_cut_off>: Error 0x8007007a: Failed to copy CustomAction log name: <exported_name_NOT_cut_off>

由于我对 Windows 编程和 Wix 比较陌生,当我注意到错误消息中的 DLL 函数名称被截断时,我立即认为 DLL 中导出的函数名称必须有 31 个字符的限制,但显然情况并非如此; 事实证明,这是我不知道的 WiX 的一个限制。

所以,我在这里有两个问题:

  1. DLL 中导出或导入函数名的长度是否有限制?我在 MSDN 帮助中找不到任何提及。如果相关,我正在使用 C++ 编码并在 Windows 7 x64 上使用 Visual Studio 2010。

  2. 我找到了这个,但不幸的是,对于为什么 WiX 有这样的限制,没有给出很好的答案。有谁知道为什么以这种方式限制它?在大于 3.5.2519(我正在使用的版本)的 WiX 版本中仍然是这种情况吗?

4

1 回答 1

3

您控制传递给 WcaInitialize 的名称;它不必是实际函数或自定义操作名称,因此您可以根据需要缩短它。WcaLog* 函数使用它来为您的日志添加前缀,因此它并不重要;如果你愿意,你甚至可以传递 NULL。

WiX v3.6 和 v3.7 beta 版本中仍然存在限制。

于 2012-10-11T22:22:21.430 回答