ファイルをロックせずにアセンブリをロードしようとしています。これらのアセンブリはサードパーティのアセンブリである可能性があるため、必ずしもコードにアクセスできるとは限りません。そのうちの1つまたは2つは、Assembly.Locationを使用して、ディレクトリからファイルを読み取ります。
シャドウコピーを介してこれを実行できることは承知していますが、正しく機能させるのは非常に困難であり、特定のフォーラムの一部のユーザーは、アセンブリをバイト配列にロードし、Assembly.Load(Byte [])オーバーロードを使用することを推奨しています。Assembly.Locationは空の文字列を返し、Assembly.Codebaseはアセンブリをロードするアプリケーションの場所を返すため、これは、これらのアセンブリの1つが親ディレクトリ内のファイルにアクセスしようとするまでうまく機能します。
ロードしているアセンブリのCodebaseまたはLocationプロパティを何らかの方法で設定するためにできることはありますか?コードベースと場所に関するMSDNドキュメントでは、それらはオーバーライド可能なプロパティとして定義されています-それは、ホスティングアプリケーションからそれらをオーバーライドできることを意味しますか?