アセンブリ A に次のクラスがあります。アセンブリには StructureMap 2.6.1 への参照があります。
public static class Bootstrapper
{
public static void Bootstrap(string databaseName)
{
StructureMapBootstrapper.Bootstrap(databaseName);
}
}
まったく別のアセンブリ (B) でアセンブリ A を参照しています。この行が呼び出されると、次のランタイム エラーが発生します。
Bootstrapper.Bootstrap(db);
実行時エラーは次のとおりです。
FileNotFoundException: ファイルまたはアセンブリ 'StructureMap、Version=2.6.1.0、Culture=neutral、PublicKeyToken=e60ad81abae3c223' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
StructureMap.dll をアセンブリ B の bin ディレクトリに常にコピーする必要があります。これは非常に面倒です。これを解決する方法について何か提案はありますか? AssemblyA によって参照されるアセンブリが AssemblyB によって必要とされる時期に関する一般的なルールを知っている人はいますか?
ありがとう!
素早い返信ありがとうございます。StructureMap を参照として単純に追加することを考えました。しかし、私が設計で目指していた角度は、基盤となる実装を消費者から切り離すことでした。つまり、アセンブリ B は、StructureMap が最終的に使用されているという事実を認識しません。また、GAC StructureMap を使用すると、展開の問題が発生しますよね? グローバル キャッシュに StructureMap を持たないホスト マシンにサイトをデプロイすると、振り出しに戻ります。このアセンブリ参照の問題を考えると、真の抽象化がどのように実現されるのか興味があります。