2012-03-21 5 views
0

System.AddInを使用すると、.dllファイルをロックせずにAddInを読み込んでアクティブにする方法はありますか?私はAddInの新しいバージョンを読み込むためにファイルを削除または上書きしたいと思います。C#MAF DLLをロックせずにAddInを有効にする

この時点でファイルをロック解除する唯一の方法は、AddInをシャットダウンすることです。しかし、私はそれが着信コール(非同期サービス、はい、悪夢)のために常に生き続ける必要があります。

また、実行時にAddInsを更新する別の方法がありますが、それを正しく実行していません。私はこれを行う正しい方法であることを知りたいと思います。ありがとう!

答えて

1

System.AppDomainクラスのShadowCopy機能はどうですか?

私はまだ試してくださいそれを与えられていないが、あなたは次のことを試みることができる:

  1. AppDomainSetupを作成します。
  2. AppDomainSetupインスタンスで、ShadowCopyFilesをtrueに設定します。
  3. AppDomainSetupインスタンスで、ShadowCopyFilesDirectoriesを、実行時にオーバーライトできるアセンブリを含むディレクトリパスに設定します。これは単に、アドインアセンブリが配置されているディレクトリです。あなたはちょっと試してみるべきです。
  4. AppDomainSetupインスタンスでは、必要に応じてその他すべてを設定します。
  5. this overload of AppDomain.CreateAppDomainを使用して新しいアプリケーションドメインを作成します。あなたは、シャドウコピーhereの詳細情報を見つけることができますアドインusing this overload of AddInToken.LoadAddIn

  • ロード。 このスレッドをCodePlexのSystem.AddIn Tools and Samplesページでも読んでください。

  • 0

    新しいバージョンを読み込むと、ハンドオーバーがどのように機能すると思いますか? 1(変更しないこと)だけで、着信コールを受信し、バッファリングすると、別の(変更はないこと)これらの呼び出しを処理する作業を行うために:あなたは、2つのアドインを必要とするよう

    が鳴ります。その後、処理アドインをシャットダウンしてアップグレードできます。一方、メッセージ受信アドインは、処理アドインの新しいバージョンが起動して実行されるまで非同期呼び出しをバッファできます。

    +0

    私はすでに考えていますが、もう一方をアップグレードしている間は常にアクティブにしておきます。ただし、ファイルを削除して移動する必要があるため、「生きている」AddInファイルはロックされています。面倒なシナリオですか?そのため、ファイルをロックせずに読み込むオプションがあるかどうかを調べています。ありがとう! – BlackCath

    関連する問題