2016-05-15 15 views
0

私はAddInで非常に奇妙な問題が発生しました。Outlookは、VSTOアドインを無効にし、読み込み時間の文句を言います

クライアントは、ロード時間が遅いためにOutlookで無効になっていますが、私のコード(avrgでは1.2秒)では、アドインから離れて起動中に他のカスタムコードを実行していません下に見てください。

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
     { 
      logger.Debug("Startup called"); 
      this.AddInStartup(); 
      #region Add-in Express Regions generated code - do not modify 

      this.FormsManager = AddinExpress.OL.ADXOlFormsManager.CurrentInstance; 
      this.FormsManager.OnInitialize += new AddinExpress.OL.ADXOlFormsManager.OnComponentInitialize_EventHandler(this.FormsManager_OnInitialize); 
      this.FormsManager.Initialize(this); 
      #endregion 
      logger.Debug("Exit Startup"); 
     } 

また、私はリボンリボン(ボタン)を持っています。

login、webservice呼び出しなどのaddInのすべての機能コードは、リボンボタンをクリックしてOutlookを開いたときにのみ実行されます。

過去に見えた可能性がある外部の理由があるか、outlookが私のaddInに苦情を申し立てるコードに関連しない可能性がありますか?あなたのアドインが徐々に始まり、なぜ複数の理由がある

答えて

1

....

しかし、で開始する非常に最初のものは、任意のアドインExpressのコードを削除し、それをロードするためにかかる時間を確認することです。 Add-in Expressアセンブリを使用せずに、新しく作成したアドインプロジェクトで同じ画像を取得しますか?

私のような全体的なアドインのパフォーマンスを高めるための一般的なアプローチを適用することをお勧めしたい:

  1. は、アプリケーション上でネイティブイメージジェネレータ(Ngen.exe)を使用して考えてみましょう。 Ngen.exeを使用すると、Ngen.exeによって生成されたネイティブイメージがMSILイメージよりも大きくなる可能性があるため、CPU使用量を増やすとディスクアクセスが増えます。 ウォームスタートアップ時間を改善するには、アプリケーションコードのJITコンパイルのCPUコストを避けるため、常にアプリケーションでNgen.exeを使用する必要があります。
  2. アセンブリがグローバルアセンブリキャッシュ(GAC)にインストールされていない場合、強力な名前のアセンブリのハッシュ検証によって遅延が発生し、そのアセンブリのネイティブイメージがコンピュータで使用可能な場合、Ngenイメージの検証によって遅延が発生します。 GACにインストールされているすべてのアセンブリでは、厳密な名前の検証はスキップされます。詳細については、「Gacutil.exe(グローバルアセンブリキャッシュツール)」を参照してください。
  3. 認証コードの検証が起動時に追加されます。 Authenticode署名付きアセンブリは、証明機関(CA)で検証する必要があります。この確認は、現在の証明書失効リストをダウンロードするためにネットワークに何回か接続する必要があるため、時間がかかる可能性があります。また、信頼されたルートへのパスに有効な証明書の完全なチェーンが存在することを確認します。これは、アセンブリがロードされている間、数秒間の遅延につながります。クライアントコンピュータにCA証明書をインストールするか、可能であればAuthenticodeを使用しないでください。申請書にパブリッシャーの証拠が必要ないことが分かっている場合は、署名検証の費用を支払う必要はありません。

詳細については、Application Startup Timeを参照してください。またTJE以下のページを見てみましょう:

関連する問題