4

ビルドサーバーでプロジェクトをビルドしているときに、コンパイルが失敗し、次のエラーメッセージが表示されます。

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

VS2005コマンドプロンプトを介してTlbImpコマンドを手動で呼び出そうとしましたが、同じエラーメッセージが表示されました。

調査するために、仮想マシン(Vbox)でクリーンなビルド環境を作成し、そこでビルドを実行しようとしました。うまくいきました。

また、VS2005コマンドプロンプトを介して同じTlbImpコマンドを呼び出そうとしましたが、成功しました。

これで、DLLに問題はないと想定しています。どのシナリオがこの問題を引き起こす可能性があるかについて何か考えがありますか?

編集:問題を見つけました、私の答えを見てください。;)

4

2 に答える 2

3

あるマシンで動作していて、別のマシンでは動作していない場合、ほとんどの場合、この DLL の依存関係がマシンで欠落しています。DependencyWalkerを介して dll を検査すると、どの依存関係が適切に構築されていないかがわかります。

于 2009-06-17T09:26:26.890 に答える
1

詳細な調査の結果、公式ビルド サーバーの環境変数が FUBAR であることがわかりました。

公式のビルド サーバーは、VS2003 と VS2005 の両方でインストールされました。私たちのプロジェクトはVS2005です。ビルド スクリプトは、VS2005 の代わりに VS2003 のコンポーネントを使用しています。これは、VS2003 パス (パス、LIB、LIBPATH、および INCLUDE) が VS2005 パスの前に最初に宣言されているためです。

環境変数を「正しいもの」でオーバーライドする単純な SET コマンドで、ビルドが修正されました。

ありがとう!

于 2009-06-17T10:16:18.413 に答える