4

在构建服务器上构建我们的项目时,编译失败并显示错误消息:

TlbImp: error TI0000 : The input file 'C:\*.dll' is not a valid type library.

我们尝试通过 VS2005 命令提示符手动调用 TlbImp 命令,并出现相同的错误消息。

为了进行调查,我们尝试在虚拟机 (Vbox) 中创建一个干净的构建环境,然后在那里运行构建。一切顺利。

我们还尝试通过 VS2005 命令提示符调用相同的 TlbImp 命令,它成功了。

有了这个,我们假设 DLL 没有任何问题。你知道什么情况会导致这个问题吗?

编辑:发现问题,请参阅我的答案。;)

4

2 回答 2

3

如果它在一台机器上运行而不在另一台机器上运行,那么很可能您的机器中缺少此 DLL 的某些依赖项。通过DependencyWalker检查 dll ,您将了解哪个依赖项没有正确构建。

于 2009-06-17T09:26:26.890 回答
1

经过仔细检查,我们发现官方构建服务器上的环境变量是FUBAR。

官方构建服务器同时安装了 VS2003 和 VS2005。我们的项目是VS2005。构建脚本使用来自 VS2003 的组件而不是 VS2005,因为 VS2003 路径(路径、LIB、LIBPATH 和 INCLUDE)首先在 VS2005 路径之前声明。

一个简单的 SET 命令用“正确的”覆盖环境变量修复了构建!

谢谢!

于 2009-06-17T10:16:18.413 回答