Почему мой элемент ActiveX .NET не регистрируется в Internet Explorer?

Я пишу элемент управления ActiveX для запуска в Internet Explorer. Я использую C # и пространство имен System.Runtime.InteropServices.

Когда я вручную регистрирую элемент управления на своей машине разработки с помощью regasm, элемент управления работает, и я могу вызывать на нем методы, используя new ActiveXObject(..) функции Javascript.

Однако для производства я хочу встроить объект на свою страницу с помощью тега <OBJECT>, и именно здесь у меня возникают проблемы.

Библиотека ActiveX DLL не регистрируется, и когда я проверяю сообщения об ошибках регистрации ActiveX (с помощью средства просмотра журнала ошибок загрузки кода), я вижу следующее:

Регистрация OCX: нет точки входа DllRegisterServer (путь к моему control.dll). Пропуск регистрации.

Может ли кто-нибудь помочь мне разобраться в этом? Требуются ли для моего кода C # методы для выполнения действия DllRegisterServer? Можно ли таким образом использовать элементы управления ActiveX, разработанные в .NET?

Большое спасибо.


person Lenny Marnham    schedule 04.08.2010    source источник
comment
Я думаю, сообщение OCX Registration: no DllRegisterServer точка входа указывает на попытку регистрации через RegSrv32 (или какой-то эквивалентный вызов api). Вам понадобится регазм-вызов ПЕРЕД использованием элемента управления на вашей странице.   -  person ralf.w.    schedule 04.08.2010
comment
Хорошо ... можно ли заставить IE вызывать Regasm для регистрации сборки вместо RegSrv32?   -  person Lenny Marnham    schedule 04.08.2010


Ответы (1)


Если под «производством» вы имеете в виду общедоступный Интернет и хотите, чтобы ваша страница автоматически загружала и регистрировала элемент управления ActiveX, вам потребуется сделать специальную упаковку, как описано в этот ответ на вопрос" Как развернуть элемент управления ActiveX, например, из проекта VS2008? "

Однако, если ваша производственная среда представляет собой интрасеть, вы можете использовать regasm.exe, чтобы зарегистрировать сборку, а затем использовать gacutil.exe для ее установки в GAC (как описано в статье).

person Holistic Developer    schedule 13.01.2012