2

Assembly.LoadFromは ApplicationBase と PrivateBinPath を使用しているというのが私の印象です。また、Assembly.LoadFile はそうではないという印象もあります。

なぜ LoadFile を使いたがるのでしょうか? つまり、私の理解が正しければ、なぜ ApplicationBase と PrivateBinPath を使用したくないのでしょうか?

LoadFile を使用する既存のコードを使用していますが、なぜそうするのかわかりません。LoadFile は明らかに、同じディレクトリから依存関係をロードしません。LoadFrom メソッドは依存関係をロードします (ドキュメントから:ロードからのコンテキスト...パス情報がコンテキストによって維持されているため、そのパスの依存関係を見つけてロードすることができます。 ) LoadFile を使用して変換したいと思います。 、LoadFrom を使用します。

LoadFile を LoadFrom に置き換えた場合、どちらかと言えば何が壊れる可能性がありますか?

良心的であっても、プロジェクトのスケジュールによっては交換できない場合があります。LoadFile を LoadFrom に置き換えることができない場合、LoadFile で読み込まれたアセンブリに依存関係を読み込むよう説得する方法はありますか? LoadFile でロードされたアセンブリがその依存関係もロードできるようにする、使用できるパッケージ化のトリック (組み込みアセンブリ、ILMerge、AssemblyResolve イベントなど) はありますか?

4

2 に答える 2

4

注意してください - これらは同じものではありません。

LoadFrom() は Fusion を通過し、別のパスにある別のアセンブリにリダイレクトできますが、LoadFrom コンテキストに既に読み込まれている場合は同じ ID でリダイレクトできます。LoadFile() は Fusion を介してまったくバインドしません。ローダーは先に進み、呼び出し元が要求したものを正確に*ロードします。Load コンテキストも LoadFrom コンテキストも使用しません。

http://blogs.msdn.com/b/suzcook/archive/2003/09/19/loadfile-vs-loadfrom.aspx

于 2010-12-27T13:37:41.090 に答える
0

Madhur Ahuja の回答に加えて、ほとんどの場合、実際Assembly.Loadに使用したいものであることに注意してください。

http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57143.aspx

于 2010-12-27T14:48:56.167 に答える