Как установить имя элемента управления ActiveX

У меня есть элемент управления ActiveX, и я подписал его тестовым сертификатом, все работает нормально, но проблема в том, что мой Internet Explorer показывает уродливое сообщение

Веб-сайт хочет запустить следующую надстройку: «Недоступно» из «Имя элемента управления недоступно». Если вы доверяете веб-сайту и надстройке и хотите разрешить их запуск, щелкните здесь ....

Почему имя элемента управления недоступно? Я сделал этот элемент управления ActiveX на C # и добавил атрибут ComVisible в свой файл assemblyInfo.cs, вот код

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security.Permissions;
using System.Runtime.InteropServices;
//
// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: System.Runtime.InteropServices.ComVisible(true)]
[assembly: AssemblyTitle("My ActiveX Control")]
[assembly: AssemblyDescription("My ActiveX Control Description")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("CompanyXYZ")]
[assembly: AssemblyProduct("My ActiveX Control")]
[assembly: AssemblyCopyright("2009")]
[assembly: AssemblyTrademark("CompanyXYZ")]
[assembly: AssemblyCulture("")]     

//
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Revision and Build Numbers 
// by using the '*' as shown below:

[assembly: AssemblyVersion("1.0.0.1")]

Пожалуйста, помогите мне?


person Muhammad Ummar    schedule 23.11.2009    source источник


Ответы (3)


Вы подписываете свой контроль? Элементы управления Active X должны быть подписаны, и информационная лента получает эту информацию из подписи. Эта статья действительно старая (1996 г.), но должна помочь вам в правильном направлении.

Редактирует:

Вы можете добавить свой элемент управления в предварительно утвержденный список как часть вашей установки, см. Этот документ.

Также убедитесь, что зарегистрируйте соответствующий ProgID.

Edits2:

Фактически, при чтении кажется, что управляемые расширения всегда загружают среду выполнения, поэтому IE видит ее как среду выполнения. Может быть такая же проблема с Active X.

person i_am_jorf    schedule 23.11.2009
comment
да, я подписал элемент управления ActiveX .. на самом деле файл .cab также подписан, и он правильно показывает имя .. но когда он пытается запустить, он дает это приглашение .. - person Muhammad Ummar; 23.11.2009
comment
Да, я просмотрел этот документ и указал progID, а также подписи кода и другие вещи в этом документе ... но файл cab - это рабочий файл, и он правильно показывает имя ... но когда он запрашивает запуск разрешение .. это имя пропадает .. ?? Я только что сделал элемент управления ActiveX в MFC. он правильно показывает свое имя ... но я до сих пор не знаю, как это сделать на C #. поскольку я написал почти весь код на C # и он работает нормально, за исключением этой проблемы с именем ... - person Muhammad Ummar; 23.11.2009

Привет, хитрость в том, что вам нужно подписать не только файл ActiveX .cab, но также файлы .dll и .ocx, которые он содержит. см. здесь

person Charles Okwuagwu    schedule 13.05.2012

Я могу ошибаться, но если я правильно помню, имена COM отделены от обычных атрибутов сборки. Однажды я написал activex в vb.net и смог правильно увидеть описание и заголовок.

person Cem Kalyoncu    schedule 23.11.2009
comment
не могли бы вы помочь мне, как установить имена COM в C #? - person Muhammad Ummar; 23.11.2009
comment
У меня больше нет доступа к инструментам .net, поэтому я не могу больше помочь по этому поводу. Проверьте атрибуты ‹COMName something› или из диалога свойств класса, я не могу вспомнить детали, извините за это. - person Cem Kalyoncu; 24.11.2009