TLBIMP.EXE - 错误 TI0000 - *.dll 不是有效的类型库

发布于 2024-07-25 08:22:30 字数 403 浏览 5 评论 0原文

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

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

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

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

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

这样,我们就假设 DLL 没有任何问题。 您知道什么情况会导致此问题吗?

编辑: 发现问题了,看我的回答。 ;)

While building our project on the Build Server, the compilation fails with the error message:

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

We tried to manually invoke the TlbImp command thru the VS2005 Command Prompt and the same error message appeared.

To investigate, we tried to create a clean build environment in a Virtual Machine (Vbox), then we run the build there. It went fine.

We also tried to invoke the same TlbImp command thru the VS2005 Command Prompt and it succeeded.

With that, we are assuming that there is nothing wrong with the DLL. Do you have any idea what scenario(s) can cause this problem?

EDIT:
Found the problem, see my answer. ;)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天冷不及心凉 2024-08-01 08:22:30

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

If it is working on one machine and not on the other, then most probably some dependency of this DLL is missing in your machine. Inspect the dll through DependencyWalker and you will get to know that which dependency hasn't been built properly.

抽个烟儿 2024-08-01 08:22:30

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

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

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

谢谢!

After closer inspection, we found out that the environment variables on the official build server is FUBAR.

The official build server was installed with both VS2003 and VS2005. Our project is VS2005. The build script is using components from VS2003 instead of VS2005 because the VS2003 paths (Path, LIB, LIBPATH and INCLUDE) were first declared before the VS2005 paths.

A simple SET command to override the environment variables with the "correct ones" fixed the build!

Thanks!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文