2012-01-10 12 views
2

SOFとMSDNフォーラムで多くの検索を行っていますが、残念なことに方法はありません。ここに問題と適用される方法があります。Internet Explorer用.Netを使用して開発されたBHOのPublisher情報が「使用不可」です

  1. 私はそれが次のC#のインストーラコードを使用してBHO(ブラウザヘルパーオブジェクト」として登録されているInternet Explorer 7用の.NETを使用して、ツールバーを開発しました。
  2. 私はMSIのセットアップとカスタムを使用しています登録するには、クラスファイルをインストール
  3. 私はdllに署名し、MSIと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); 

ご協力いただきありがとうございます。

おかげ

スティーブ

答えて

1

セットした後、AssemblyInfo.csで情報以下のDLLをビルドファイル。

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

このDLLを登録するときは、次のコマンドを使用します。

regasm /register /codebase YourDLL.dll 

これで、IEの管理アドオンにあなたのパブリッシャー名が表示されます。

希望はこれが理にかなっています。

関連する問題