Почему мой элемент управления .NET ActiveX не регистрируется в Internet Explorer? - PullRequest
2 голосов
/ 04 августа 2010

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 13 января 2012

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

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

...