3

.net1.1から.net3.5への移行の一環として、いくつかのベンダーDLLを変更する必要がありました。

そのうちの1つは、私たちが使用している4つのスポットのうち1つのスポットだけで問題を引き起こしています。

問題のある場所は、リフレクションを使用して、長時間実行されるプロセスを実行するいくつかのDLLを動的にロードするWindowsフォームプロジェクトです。これらの長時間実行されるプロセスの1つは、ベンダーDLLの1つに依存するエージェントです。

ライブラリを参照する関数を最初に入力した時点で、欠落しているアセンブリ例外が発生しています。参照を古いバージョンから新しいバージョンに移動するのを忘れたかどうかなど、私はすでに愚かなことをチェックしましたが、そうではありません。プロジェクトのbinディレクトリも確認しましたが、アセンブリはそこにあります。

.net 2.0ランタイムがそのようなアセンブリのロードを拒否する状況に遭遇した人はいますか?もしそうなら、どうすれば問題を解決できますか。

追加情報:

この場合の特定のベンダーはdtSearchであり、これはエラーがスローされる境界です。

Private Sub BuildIndex()
    SetIndexOptions()
    ExecuteIndexJob()
End Sub

Private Sub SetIndexOptions()
    'Body removed for brevity
End Sub

ライブラリはSetIndexOptionsで参照されます。BuildIndex()入力されますが、SetIndexOptionsが呼び出されると例外が発生します。関数が実際に入力されることはありません。

4

3 に答える 3

4

それでも問題が解決しない場合は、アセンブリバインディングログビューア(Fuslogvw.exe)を使用して、アプリケーションによってロードされているアセンブリを特定できます。このツールは、.NETFrameworkの一部です。これにより、依存するすべてのアセンブリの詳細が提供されます。

私は過去にサードパーティのアセンブリで作業するときにこれを使用しましたが、非常に便利です

于 2009-10-08T22:56:43.897 に答える
1

依存するアセンブリの1つをロードできなかった場合、アセンブリが存在する場合でもFileNotFoundExceptionが発生する可能性があります。

Dependency Walkerを使用して、すべての依存アセンブリも存在することを確認してください。

于 2009-10-08T22:49:09.207 に答える
1

デフォルトのコンパイルオプションがVS2003からVS2008に変更され、間違ったビット数でコンパイルされていたことが判明しました:\今、私は少しばかげていると感じています!

于 2009-10-20T18:32:27.990 に答える