Почему мой элемент управления.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 (как описано в статье).