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

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

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

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

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

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

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

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

1 ответ

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

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

Другие вопросы по тегам