2011-08-11 31 views
11

現在、.NETで書き換えられないいくつかの古いVB6アプリケーションを継承しています。これらの古いアプリケーションはすべてADOを使用し、私のXPマシンで正常にコンパイルします。 Windows 7マシンに切り替えると、アプリケーションは正常にコンパイルされますが、(XPマシンで)展開されると、エラーが発生します。Windows 7で動作するVB6 ADOアプリケーションの取得

http://support.microsoft.com/kb/2517589

記事は「.TLB」ファイルをコピーし、 『regtlibv12』を使用してそれを登録関与回避策、の非常に詳細な説明を与える:これは、このマイクロソフトの資料で説明することを既知の問題です。 Cの

RegisterTypeLib::\ Program Files \ Commonファイル\システム\騒ぎ\ msado60_Backcompat.tlbに失敗しました:80029c4a

を私はまた、これを登録しようとした私はそれを登録しようとすると、私は、このエラーメッセージが表示されますWindowsフォルダに古い "regtlib.exe" を使用しますが、このエラーを得た:Cの

LoadTypeLib:\ Program Files \ Commonファイル\システム\騒ぎ\ msado60_Backcompat.tlbに失敗しました:80029c4a

をするのでこのうち、私はcontiできません回避策と一緒に話してください。私はこのファイルを適切に登録する方法について、誰かが私に与えることができるどんな指針にも非常に感謝します。

ありがとうございます!

+4

この問題は嫌です。私は現在、ADO関連のものをコンパイルするためにのみ、仮想Windows XPマシンを使用しています。 – GSerg

+1

イベント・ログを調べて、regtlibv12コマンドが失敗した理由を調べます。また、管理者としてcmdウィンドウを起動しましたか? – jac

+0

これは私が唯一ではないことを知って、かなりの時間、私を困らせました! –

答えて

13

次にVB6 IDE(すなわち管理者として、上昇)で新しいプロジェクトを開く

C:\Program Files\Common Files\System\ado 

などの適切な場所に.TLBファイルを置きます。 [プロジェクト|参照...]を選択し、[参照]ボタンをクリックします。新しい.TLBファイルに移動して開きます。ボックスをチェックしてアイテムを選択し、参照ダイアログを閉じます。

今すぐ登録する必要があります。

もし必死なら、VB Type Library Registration Utilityを試してください。

+0

素晴らしい提案、Bob。プロジェクト内で参照を正常に追加できました。しかし、それは他のプロジェクトには登録されませんでした。手動で各プロジェクトに追加する必要がありました。これは私の以前のソリューション(XP VMを使ってアプリケーションを構築する)より10倍優れています。あなたのソリューションをありがとう! – Loki70

+0

'C:\ Program Files(x86)\ Microsoft Visual Studio \ VB98'に移動し、' VB6.EXE'を右クリックしてください。 「管理者として実行」を選択します。回答からのステップを繰り返して、TLBを永久に登録します。 – wqw

+0

wqw - あなたはうまくいきました。私があなたの手順に従えば、TLBは永久に登録されたようです。あなたには本当にありがとう! – Loki70

8

おそらくファイルをC:\temp\Msado60_Backcompat_i386.tlbとしてダウンロードし、名前を変更していない可能性があります。この例は、C:\temp\Msado60_Backcompat.tlb(注:_i386)を登録するためのものです。

正しいファイル名でコマンドを実行してください。

+0

良い点 - ファイルをダウンロードした後、 「_i386」を付けずに登録する方法が記載されています。私は今働いているので、私は何も元に戻すつもりはありませんが、これは良い提案です。 – Loki70

3

最新の情報に基づいてこの回答リストを更新するだけで、MicrosoftはKB 2640696をリリースし、この問題をより簡単に解決しています。このパッチは、ビルドマシンでの展開がはるかに簡単になり、下位OSの問題も解決します。

パッチの完全な画像は、blog postにあります。

関連する問題