Castle Windsor を使用するリッチ クライアント アプリケーションがあります。現時点では、アプリケーション exe を含むすべてのアセンブリが 1 つのフォルダーにありますが、全体がやや乱雑に見えます。dll を「bin」などのサブフォルダーに入れたいのですが、これにより、呼び出されたときに Castle が型などを見つけることができなくなります。実際、アプリは起動時にクラッシュします。
キャッスルに別の場所でファイルを探すように指示する方法はありますか?
Castle Windsor を使用するリッチ クライアント アプリケーションがあります。現時点では、アプリケーション exe を含むすべてのアセンブリが 1 つのフォルダーにありますが、全体がやや乱雑に見えます。dll を「bin」などのサブフォルダーに入れたいのですが、これにより、呼び出されたときに Castle が型などを見つけることができなくなります。実際、アプリは起動時にクラッシュします。
キャッスルに別の場所でファイルを探すように指示する方法はありますか?
これは、Windsor の構成方法によって異なります。
Castle.MicroKernel.Registration インターフェイスを使用する場合は、アセンブリを手動でロードしてから、ロードした型をコンテナに登録する必要があります。
Castle はアセンブリのロード自体を行いません。フュージョンに依存して、デフォルトのプローブ動作に基づいてアセンブリを見つけるだけです。したがって、これはより一般的な .Net Framework の質問です。
あなたが望むことを行う1つの方法は、アセンブリ解決の失敗を処理し、アセンブリが配置できる場所にランタイムを指示することです.適切なアセンブリを正しい場所からロードします。
これにより、バイナリ サブディレクトリだけでなく、あらゆる種類のディレクトリ スキームをサポートできるようになります (たとえば、プラグイン用に別のディレクトリを作成できます)。