我在程序集 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”或其依赖项之一。该系统找不到指定的文件。
我经常不得不将 StructureMap.dll 复制到程序集 B 的 bin 目录中。这非常烦人。关于如何解决这个问题的任何建议?有人知道关于 AssemblyB 何时需要 AssemblyA 引用的程序集的一般规则吗?
谢谢!
感谢您的快速回复!我想过简单地添加 StructureMap 作为参考。然而,我在设计中的目标是从消费者那里抽象出底层实现。换句话说,Assembly B 将不知道 StructureMap 最终被使用的事实。另外,如果我是 GAC StructureMap,那么我会遇到部署问题吗?如果我将站点部署到其全局缓存中没有 StructureMap 的主机上,那么我将回到原点。我很好奇考虑到这个程序集引用问题,如何实现真正的抽象。