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 不是有效的类型库的主要内容,如果未能解决你的问题,请参考以下文章

代码间的跳转

如何在命令行上从 COM exe 中提取 TypeLib

由于以下错误,检索具有 CLSID 00020906-0000-0000-C000-000000000046 的组件的 COM 类工厂失败:80070005

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

TI AM57xx SDK升级之 linux设备树解析,以网口cpsw为例