在构建服务器上构建项目时,编译失败并显示错误消息:
TlbImp: error TI0000 : The input file 'C:\*.dll' is not a valid type library.
我们尝试通过VS2005命令提示符手动调用TlbImp命令,并出现相同的错误消息。
为了调查,我们尝试在虚拟机(Vbox)中创建 clean 构建环境,然后在那里运行构建。一切都好。
我们还尝试通过VS2005命令提示符调用相同的TlbImp命令,并且它成功了。
有了这个,我们假设DLL没有任何问题。你知道什么情况会导致这个问题吗?
编辑: 发现问题,看我的答案。 ;)
答案 0 :(得分:3)
如果它在一台机器上运行而在另一台机器上运行,则很可能在您的机器中缺少此DLL的某些依赖项。通过DependencyWalker检查dll,您将了解哪个依赖项尚未正确构建。
答案 1 :(得分:1)
仔细观察后,我们发现官方构建服务器上的环境变量是FUBAR。
官方构建服务器安装了VS2003和VS2005。我们的项目是VS2005。构建脚本使用VS2003而不是VS2005中的组件,因为VS2003路径(Path,LIB,LIBPATH和INCLUDE)首先在VS2005路径之前声明。
使用“正确的”修改构建的简单SET命令覆盖环境变量!
谢谢!