TLBIMP.EXE - Ошибка TI0000 - * .dll не является библиотекой типов - PullRequest
4 голосов
/ 17 июня 2009

При сборке нашего проекта на сервере сборки компиляция завершается с сообщением об ошибке:

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

Мы попытались вручную вызвать команду TlbImp через командную строку VS2005, и появилось то же сообщение об ошибке.

Для исследования мы попытались создать чистую среду сборки на виртуальной машине (Vbox), а затем запустили сборку там. Все прошло хорошо.

Мы также пытались вызвать ту же команду TlbImp через командную строку VS2005, и она завершилась успешно.

При этом мы предполагаем, что с DLL нет ничего плохого. У вас есть идеи, какие сценарии могут вызвать эту проблему?

EDIT: Нашел проблему, посмотри мой ответ. ;)

Ответы [ 2 ]

3 голосов
/ 17 июня 2009

Если он работает на одной машине, а не на другой, то, скорее всего, некоторая зависимость этой DLL отсутствует на вашей машине. Изучите dll через DependencyWalker , и вы узнаете, какая именно зависимость не была правильно построена.

1 голос
/ 17 июня 2009

После более тщательной проверки мы обнаружили, что переменные окружения на официальном сервере сборки - это FUBAR.

Официальный сервер сборки был установлен с VS2003 и VS2005. Наш проект VS2005. Сценарий сборки использует компоненты из VS2003 вместо VS2005, потому что пути VS2003 (Path, LIB, LIBPATH и INCLUDE) были впервые объявлены перед путями VS2005.

Простая команда SET для переопределения переменных окружения на "правильные" исправила сборку!

Спасибо!

...