«Невозможно получить путь к файлу для библиотеки типов» при попытке использовать OCX в. NET - PullRequest
0 голосов
/ 08 мая 2020

Я переписываю старое приложение VB6 на c# на компьютере Win10Pro64bit. Приложение VB6 использует OCX под названием IMAGinE. Я могу добавить элемент управления в ToolBox. Когда я это делаю, он добавляет две ссылки: AxIMAGINELib и IMAGINELib. В ссылках IMAGINELib есть маленький желтый треугольник, указывающий на проблему со ссылкой. Я могу добавить элемент управления в форму. В свойствах указано, что он относится к типу «AxIMAGINELib.AxIMAGinE». Когда я пытаюсь запустить приложение, я получаю следующую ошибку на вкладке «Список ошибок» VS:

Could not resolve COM reference "8a4feb20-a486-11cf-be99-0020afd208b9" version 1.0. Object reference not set to an instance of an object.

Когда я go перехожу на вкладку «Вывод» VS, сразу отображается следующее предупреждение перед указанной выше ошибкой:

Cannot get the file path for type library "bef6e001-a874-101a-8bba-00aa00300cab" version 2.0. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))

Краткий поиск, кажется, показывает, что «bef6e001-a874-101a-8bba-00aa00300cab» указывает на olepro32.dll.

Я зарегистрировал OCX, используя regsvr32, как в каталоге windows \ system32, так и в каталогах windows \ syswow64. Я зарегистрировал olepro32.dll в каталоге syswow64, но не в каталоге system32, потому что он не существует. Это ничего не изменило.

Я удалил ссылку на IMAGINELib и сохранил ссылку на AxIMAGINELib, думая, что ей не понадобятся обе ссылки, и потому что ссылка IMAGINELib имела маленький желтый треугольник. Это ничего не изменило.

Компания, создавшая оригинальный OCX, больше не работает, и у меня нет оригинального установщика компонентов.

Есть идеи, что я могу сделать, чтобы получить этот OCX работает? Я не хочу использовать OCX в форме. Мне нужен доступ к информации, которую может прочитать только OCX. Спасибо.

...