2009-06-17 1 views
3

При создании нашего проекта на сервере сборки, компиляция завершается с сообщением об ошибке:Tlbimp.exe - Ошибка TI0000 - * .dll не является допустимыми библиотеки типов

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

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

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

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

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

EDIT: Обнаружена проблема, см. Мой ответ. ;)

ответ

1

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

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

Простая команда SET для переопределения переменных среды с помощью «правильных» исправлена ​​сборка!

Спасибо!

3

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