出版商信息“不可用”在使用 .Net for Internet Explorer 开发的 BHO 中
我在 SOF 以及 MSDN 论坛上进行了很多搜索,但不幸的是没有任何方法适合我。这是问题和所应用的方法。
- 我使用 .Net for Internet Explorer 7 开发了一个工具栏。它使用下面的 C# 安装程序代码注册为 BHO(浏览器帮助对象)。
- 我正在使用 MSI 安装程序和自定义安装类文件来注册 BHO。这是我的做法 我已经
- 对 dll 进行了签名,并为 MSI 生成并签署了 MSI 和 EXE。安装后,我在 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);
非常感谢
谢谢
史蒂夫。
I have searched a lot on here on SOF as well as on MSDN forums but unfortuntely no method could work for me. Here is the problem and the methods applied.
- I developed a toolbar using .Net for Internet Explorer 7. It is registered as BHO (browser Helper Object" using C# installer code that follows.
- I am using MSI setup and custom install class file to register the BHO. Here is how i am doing it.
- I have signed both the dll, generated and signed both the MSI and the EXE for the MSI. After installation i verify in c:\Program Files\My Test Extension\ that my extension has digital signature as well.
Problem:
The problem is: When i goto "Managed Addons" in Internet Explorer 7 Options, i see my extension/toolbar under "Not Available" instead of company name as set in Extension/assembly properties. The "Publisher" is not available when i click "more information".
Please tell how can i set "Publisher Information"? I am using key and valid certificate issued by Verisign Inc,.
Please tell if i am doing something wrong or missing something. Here is my installer/registration code.
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);
Your help is very much appreciated.
Thanks
Steve
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 AssemblyInfo.cs 文件中设置以下信息后,构建 DLL。
当您注册该 DLL 时,请使用以下命令。
现在它将在 IE 的管理插件中显示您的发布者名称。
希望这更有意义。
After set following info in AssemblyInfo.cs file build the DLL.
When you register that DLL then use the following command.
Now it will show your publisher name in manage addon in IE.
Hope this make more sense.