TLBIMP.EXE - 错误 TI0000 - *.dll 不是有效的类型库
Posted
技术标签:
【中文标题】TLBIMP.EXE - 错误 TI0000 - *.dll 不是有效的类型库【英文标题】:TLBIMP.EXE - Error TI0000 - *.dll is not a valid type library 【发布时间】:2010-11-03 14:31:01 【问题描述】:在构建服务器上构建我们的项目时,编译失败并显示错误消息:
TlbImp: error TI0000 : The input file 'C:\*.dll' is not a valid type library.
我们尝试通过 VS2005 命令提示符手动调用 TlbImp 命令,但出现了相同的错误消息。
为了调查,我们尝试在虚拟机 (Vbox) 中创建一个 clean 构建环境,然后我们在那里运行构建。一切顺利。
我们也尝试通过 VS2005 命令提示符调用相同的 TlbImp 命令并且成功了。
这样,我们假设 DLL 没有任何问题。您知道哪些情况会导致此问题吗?
编辑: 发现问题,看我的回答。 ;)
【问题讨论】:
【参考方案1】:经过仔细检查,我们发现官方构建服务器上的环境变量是FUBAR。
官方构建服务器同时安装了 VS2003 和 VS2005。我们的项目是VS2005。构建脚本使用来自 VS2003 的组件而不是 VS2005,因为 VS2003 路径(Path、LIB、LIBPATH 和 INCLUDE)是在 VS2005 路径之前首先声明的。
一个简单的 SET 命令用“正确的”覆盖环境变量修复了构建!
谢谢!
【讨论】:
【参考方案2】:如果它在一台机器上运行而不在另一台机器上运行,那么很可能您的机器中缺少此 DLL 的某些依赖项。通过DependencyWalker检查dll,你就会知道哪个依赖没有正确构建。
【讨论】:
以上是关于TLBIMP.EXE - 错误 TI0000 - *.dll 不是有效的类型库的主要内容,如果未能解决你的问题,请参考以下文章
由于以下错误,检索具有 CLSID 00020906-0000-0000-C000-000000000046 的组件的 COM 类工厂失败:80070005
检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。