Информация издателя "Недоступно" в BHO, разработанном с использованием.Net для Internet Explorer

Я много искал здесь на SOF, а также на форумах MSDN, но, к сожалению, ни один метод не мог работать для меня. Здесь проблема и применяемые методы.

  1. Я разработал панель инструментов, используя.Net для Internet Explorer 7. Она зарегистрирована как BHO (объект-помощник браузера) с использованием кода установщика C#, который следует.
  2. Я использую настройки MSI и пользовательский файл класса установки для регистрации BHO. Вот как я это делаю.
  3. Я подписал обе библиотеки DLL, сгенерировал и подписал MSI и EXE для MSI. После установки я проверяю в c:\Program Files\My Test Extension\, что мое расширение также имеет цифровую подпись.

Проблема:

Проблема: Когда я перехожу к "Управляемым надстройкам" в параметрах Internet Explorer 7, я вижу свое расширение / панель инструментов в разделе "Недоступно" вместо названия компании, как установлено в свойствах Расширения / сборки. "Издатель" недоступен, когда я нажимаю "больше информации".

Скажите, пожалуйста, как мне установить "Информация об издателе"? Я использую ключ и действительный сертификат, выданный Verisign Inc.

Пожалуйста, скажите, если я делаю что-то не так или что-то упустил. Вот мой установщик / регистрационный код.

            string name = t.Name;
        string help = t.Name;
        rkClass.SetValue(null, name);
        rkClass.SetValue("MenuText", name);
        rkClass.SetValue("HelpText", help);

        rkLMClass.SetValue(null, name);
        rkLMClass.SetValue("MenuText", name);
        rkLMClass.SetValue("HelpText", help);

        rkInprocServer32.SetValue(null, "mscoree.dll");
        rkInprocServer32.SetValue("ThreadingModel", "Both");
        rkInprocServer32.SetValue("Class", t.FullName);
        rkInprocServer32.SetValue("Assembly", "MyTestExtension, Version=1.0.0.0");
        rkInprocServer32.SetValue("RuntimeVersion", "v2.0.50727");

        rkLMInprocServer32.SetValue(null, "mscoree.dll");
        rkLMInprocServer32.SetValue("ThreadingModel", "Both");
        rkLMInprocServer32.SetValue("Class", t.FullName);
        rkLMInprocServer32.SetValue("Assembly", "MyTestExtension, Version=1.0.0.0");
        rkLMInprocServer32.SetValue("RuntimeVersion", "v2.0.50727");

        if (0 != (style & BandObjectStyle.Vertical))
        {
            rkCat.CreateSubKey("{00021493-0000-0000-C000-000000000046}");
            rkLMCat.CreateSubKey("{00021493-0000-0000-C000-000000000046}");
        }
        if (0 != (style & BandObjectStyle.Horizontal))
        {
            rkCat.CreateSubKey("{00021494-0000-0000-C000-000000000046}");
            rkLMCat.CreateSubKey("{00021494-0000-0000-C000-000000000046}");
        }
        if (0 != (style & BandObjectStyle.TaskbarToolBar))
        {
            rkCat.CreateSubKey("{00021492-0000-0000-C000-000000000046}");
            rkLMCat.CreateSubKey("{00021492-0000-0000-C000-000000000046}");
        }
        if (0 != (style & BandObjectStyle.ExplorerToolbar))
            Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Toolbar").SetValue(guid, name);

        // register as BHO
        RegistryKey bhoKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\" + guid);
        bhoKey.SetValue("NoExplorer", 1, RegistryValueKind.DWord);

Ваша помощь очень ценится.

Спасибо

Стив

1 ответ

После установки следующей информации в файле AssemblyInfo.cs создайте DLL.

[assembly: AssemblyCompany("Your publisher name")]

Когда вы зарегистрируете эту DLL, используйте следующую команду.

regasm /register /codebase YourDLL.dll

Теперь он покажет имя вашего издателя в управлении аддоном в IE.

Надеюсь, что это имеет больше смысла.

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