0

自分の更新ランタイムを処理するためにアドインをリロードしようとしています(クリックワンスデプロイメントAPIを使用しますが、サイレント更新を提供します)

しかし、私はアドインのリロードに固執しました。私の現在のタスクは、単純なアンロードとリロードのアドインです。私が見つけたものはこれに似ていました:

private void Reload()
    {
        try
        {
            COMAddIns comAddIns = Globals.ThisAddIn.Application.COMAddIns;
            COMAddIn addIn =
                comAddIns.Cast<COMAddIn>().FirstOrDefault(addin => string.Equals(addin.Description, "OutlookAddIn1", StringComparison.OrdinalIgnoreCase));

            if (addIn != null)
            {
                addIn.Connect = false;
                addIn.Connect = true;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

しかし、この単純なクラッシュは次のとおりです。

addIn.Connect = false;

これを追加のtry/catchブロックに入れてみましたが、機能しません。Connect = false私が持っていると呼んでいる間 ThreadAbortException、私はそれが起こるのを防ぐことはできません。

コードからのアドインを単純に無効にして有効にしますが、現時点では実現できません。

4

1 に答える 1

0

ホスティングランタイムにスレッドを破棄するように指示するため、不可能なAFAIK Connect = false... 2つのアドインを配信できます(たとえば、更新のみを厳密に処理する実際の1秒と1秒、各AddInは他のアドインの更新を処理できます) ..。。

于 2012-11-23T09:26:32.970 に答える