3

これは私が昨日尋ねた質問にリンクされています。簡単に言うと、私が抱えている問題は、アセンブリの2つの競合するバージョンがあることです。1つはアプリベースにあり、もう1つはPrivateBinPathにあります。

私が理解していることから、アセンブリリゾルバーは最初にアプリベースを検索し、次にプライベートパスを検索します。問題は、フュージョンログを実行して得たものに基づいて、リゾルバーがアプリベースで間違ったバージョンを検出すると、バージョンが一致しないというエラーをスローし、プローブを停止することです。

appbaseにある参照を使用する必要があるため、PrivateBinPathProbeを設定することは、appbaseを除外するためオプションではありません。最初にPrivateBinPathで検索する順序を変更する方法はありますか?

ちなみに、間違ったバージョンが見つかった場合にリゾルバーが諦める理由がわかりません。

4

2 に答える 2

2

このAssemblyResolveイベントは、前のルックアップが成功しなかった場合にのみ呼び出されます。したがって、Yahia からのアプローチと前の質問からの回答を組み合わせる必要があります。

  1. PrivateBinPathProbeFusion が AppBase ディレクトリを参照しないように設定します。
  2. AssemblyResolveAppBase ディレクトリへのパスを解決するイベントを実装します。
  3. ...
  4. 利益!

イベントが発生するためには、最初のステップが重要です。

于 2012-04-05T16:14:41.260 に答える
1

私の知る限り、それを行うオプションはありません...

ただし、回避策を実装できます。

もう 1 つのオプションは、依存関係を EXE/DLL に埋め込むことです。これにより、パスをまったく検索する必要がなくなります。これを実現するためのオプションについては、こちらを参照してください。

于 2012-04-05T15:47:42.387 に答える