Как заставить приложение VB6 ADO работать в Windows 7 - PullRequest
12 голосов
/ 11 августа 2011

Я унаследовал несколько старых приложений VB6, которые в настоящее время не могут быть переписаны в .NET. Все эти старые приложения используют ADO и прекрасно компилируются на моей машине с XP. После перехода на компьютер с Windows 7 приложения компилируются нормально, но когда они развертываются (на компьютерах с XP), я получаю ошибки. Это известная проблема, обсуждаемая в этой статье Microsoft:

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

В статье дается очень подробное объяснение обходного пути, которое включает копирование файла ".TLB" и его регистрацию с использованием "regtlibv12". Когда я пытаюсь его зарегистрировать, я получаю сообщение об ошибке:

Ошибка RegisterTypeLib для C: \ Program Files \ Common Files \ System \ ado \ msado60_Backcompat.tlb: 80029c4a

Я также попытался зарегистрировать это с помощью старого файла regtlib.exe в папке Windows, но получил эту ошибку:

Ошибка LoadTypeLib для C: \ Program Files \ Common Files \ System \ ado \ msado60_Backcompat.tlb: 80029c4a

Из-за этого я не могу продолжать работу вокруг. Я был бы очень признателен, если бы кто-нибудь дал мне совет, как правильно зарегистрировать этот файл.

Заранее спасибо!

Ответы [ 3 ]

13 голосов
/ 12 августа 2011

Поместите файл .TLB в подходящее место, например

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

Затем откройте новый проект в IDE VB6 (с повышенными правами, то есть с правами администратора).Выберите Project | References ... затем нажмите кнопку Обзор.Перейдите к новому файлу .TLB и откройте его.Установите флажок, чтобы выбрать элемент, и закройте диалоговое окно «Ссылки».

Это должно быть зарегистрировано сейчас.

Если вам не хватает, попробуйте Утилита регистрации библиотеки типов VB .

8 голосов
/ 22 сентября 2011

Вы, вероятно, скачали файл как C:\temp\Msado60_Backcompat_i386.tlb и не переименовали его. Пример для регистрации C:\temp\Msado60_Backcompat.tlb (примечание, нет _i386).

Запустите команду с правильным именем файла.

3 голосов
/ 22 марта 2012

Просто чтобы обновить этот список ответов на основе более свежей информации, Microsoft выпустила KB 2640696 , в которой эта проблема решается более простым способом. Этот патч значительно упрощает развертывание на ваших сборочных машинах, а также решает проблему с ОС более низкого уровня.

Более полную картину патча можно найти в следующем сообщении в блоге .

...