2012-03-30 71 views
0

Visual StudioとOffice 2010を使用してMS Outlookアドインを作成しました。4台のマシンで正常にインストールしましたが、1人のユーザーが次のエラーを表示しています -OutlookアドインがIDでOfficeコントロールを見つけられません

誰もがWindows 7とOutlook 2010を実行しています。なぜこの人に問題があるのか​​わかりません。誰もこれを診断する方法を提案することはできますか?

+1

このユーザーのコンピュータには他にもotlook addinがインストールされていますか?クライアントマシンのvstoランタイムはどうですか? –

答えて

2

1人のユーザー以外のすべてのユーザーに適用されます。 @Brijesh Mishra氏は、ユーザーが他のアドインを持っているかどうか、自分のクイックアクセスツールバーがカスタマイズされているかどうかをチェックしています。

これがあれば、他のアドインを削除し、クイックアクセスツールバーのカスタマイズをインストールまたはリセットしてみてください。有するものについて

public string GetCustomUI(string RibbonID) 
    { 
     switch (RibbonID) 
     { 
      case "Microsoft.Outlook.Mail.Read": 
       return GetResourceText("namespace.type1.xml"); 
      case "Microsoft.Outlook.Mail.Compose": 
       return return GetResourceText("namespace.type2.xml"); 
      default: 
       return null; 
     } 
    } 
0

私のための実際の修正は、リボンXMLファイルはcustomUIを含み、実施例で (Office.IRibbonExtensibilityを使用して実装)GetCustomUI方法で正しいものにリダイレクト分離するました同様の問題では、アドインを削除する必要はありません。 何が起こっているのですか?Outlookは、すべてのリボン(あなたのリボンxmlにある)をユーザーが行くすべてのウィンドウに読み込もうとします。それから、ID xまたはyを見つけられないことに不平を言うでしょう。

Ribbon.csのGetCustomUIメソッドがリボンXML全体を一度に読み込むのではなく、フラグメントごとにロードするようにしてください。

IDを収集するために必要なIDがわからない場合は、GetCustomUIでブレークポイントを使用してOutlookを起動し、さまざまなビュー(メイン、新しい電子メール、新しい予定、カレンダーなど)アドインを表示する必要があるビューについては、私の場合は

、私はMicrosoft.Outlook.ExplorerMicrosoft.Outlook.Mail.ComposeMicrosoft.Outlook.Appointmentを必要としていました。

そこで私は私のGetCustomUIを変更:もちろん

public string GetCustomUI(string ribbonID) 
    { 
     switch (ribbonID) 
     { 
      case "Microsoft.Outlook.Explorer": 
       return GetResourceText("MyAddin.RibbonsForOutlookExplorer.xml"); 
      case "Microsoft.Outlook.Mail.Compose": 
       return GetResourceText("MyAddin.RibbonForOutlookMailCompose.xml"); 
      case "Microsoft.Outlook.Appointment": 
       return GetResourceText("MyAddin.RibbonForOutlookAppointment.xml"); 
      default: 
       return null; 
     } 
    } 

、私は上記の3つのXMLファイルに私のRibbon.xmlを打破しなければなりませんでした。結果:Outlookは特定の画面(予定、新しい電子メール...)に必要な断片のみを読み込み、「画面XまたはYのIDを見つけられない」という不満はない。

最後に、「アドインのユーザーインターフェイスのエラーを表示する」オプション([オプション] - > [詳細])のために、一部のユーザーがそのエラーを受け取る理由がわからないユーザーのためです。それがチェックされていない場合、Outlookは不正な形式のリボンXMLエラーを無視します。チェックした場合、アドイン(存在する場合)およびその他のアドインに関する関連エラーが表示されます。

3

+0

私には大変な頭痛を助長した優れた答えです。ありがとうございました! –

+0

DesignerベースのVSTOプラグインでこれを行う方法を知っている人はいますか?私が見つけることができるすべての答えはXMLプラグインに関するものですが、Designerベースのものを継承しています。デザイナーベースの場合、GetCustomUI()メソッドをどこに置くべきかについての参照を見つけることができません。 「IDでOfficeコントロールを見つけられませんでした」というエラーが表示されたら、エクスプローラビューまたはインスペクタビューを表示しているかどうかによって、いずれかのタブまたは別のタブのいずれかで取得されます。しかし、それを引き起こすデバッガを使用するときに私が見つけることができるエラーはありません。それでもエラーはXMLであると言われていますが、実際には決して見られないXMLが生成されています。 – Bryan

+0

これは私にとってそれを修正しました。ありがとう!!! – thewindev