Информация издателя "Недоступно" в BHO, разработанном с использованием.Net для Internet Explorer
Я много искал здесь на SOF, а также на форумах MSDN, но, к сожалению, ни один метод не мог работать для меня. Здесь проблема и применяемые методы.
- Я разработал панель инструментов, используя.Net для Internet Explorer 7. Она зарегистрирована как BHO (объект-помощник браузера) с использованием кода установщика C#, который следует.
- Я использую настройки MSI и пользовательский файл класса установки для регистрации BHO. Вот как я это делаю.
- Я подписал обе библиотеки 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.
Надеюсь, что это имеет больше смысла.