Получение приложения VB6 ADO для работы в Windows 7

Я унаследовал несколько старых приложений 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

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

Заранее благодарю вас!

Ответ 1

Поместите файл .TLB в соответствующее место, например

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

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

Теперь он должен быть зарегистрирован.

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

Ответ 2

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

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

Ответ 3

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

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