2009-06-17 4 views
3

Während unser Projekt auf dem Server Build-Bau, schlägt die Kompilierung mit der Fehlermeldung:TlbImp.exe - Fehler TI0000 - * .dll keine gültige Typenbibliothek ist

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

Wir haben versucht, manuell die TlbImp aufzurufen Befehl über die VS2005-Eingabeaufforderung und die gleiche Fehlermeldung angezeigt.

Um zu untersuchen, haben wir versucht, eine saubere Build-Umgebung in einer virtuellen Maschine (Vbox) zu erstellen, dann führen wir den Build dort. Es ging gut.

Wir haben auch versucht, den gleichen TlbImp-Befehl über die VS2005-Eingabeaufforderung aufzurufen, und es ist gelungen.

Damit gehen wir davon aus, dass mit der DLL nichts falsch ist. Haben Sie eine Idee, welche Szenarien dieses Problem verursachen können?

EDIT: Das Problem gefunden, siehe meine Antwort. ;)

Antwort

1

Bei näherer Betrachtung haben wir festgestellt, dass die Umgebungsvariablen auf dem offiziellen Build-Server FUBAR sind.

Der offizielle Build-Server wurde mit VS2003 und VS2005 installiert. Unser Projekt ist VS2005. Das Buildskript verwendet Komponenten von VS2003 anstelle von VS2005, da die VS2003-Pfade (Path, LIB, LIBPATH und INCLUDE) zuerst vor den VS2005-Pfaden deklariert wurden.

Ein einfacher SET-Befehl, um die Umgebungsvariablen mit den "richtigen" zu überschreiben, reparierte den Build!

Danke!

3

Wenn es auf einer Maschine und nicht auf der anderen funktioniert, dann fehlt höchstwahrscheinlich irgendeine Abhängigkeit dieser DLL auf Ihrem Rechner. Überprüfen Sie die DLL durch DependencyWalker und Sie werden erfahren, welche Abhängigkeit nicht ordnungsgemäß erstellt wurde.

Verwandte Themen