【发布时间】:2012-10-01 07:43:56
【问题描述】:
我有多个 DLL(我自己管理或不自己管理),我想将它们包含在 CoreLib.dll 中,这样我就不必在每个使用这些 DLL 的应用程序中包含(可能)数百个 DLL。我包含直接引用 DLL 的 DLL。
所以,我还想在我正在创建的应用程序中实例化在这些 DLL 中声明的类。我不能做 MyApp.exe 项目中所描绘的事情,即使我愿意。 CoreLib 中没有对 A、B 或 C 的引用。
我怎样才能完成我想要的?
编辑 我按照建议使用了外观模式,但是出现了编译错误。它说我必须在 MyApp 项目中包含 A.dll。为什么?这是我想避免的。有什么办法吗?
【问题讨论】:
-
不确定这是否重复,但它可能会让你到达某个地方...stackoverflow.com/questions/12307602/…
-
您打算如何知道这些不同 dll 中的类型?
-
您可能正在尝试插件架构:stackoverflow.com/questions/1071265/…
-
我可以通过知道命名空间来获取我的 A、B、C dll 中可用的类型,并让自动完成告诉我什么是可用的。不过,我不想要插件架构。我只是不想拥有 100 个 DLL,我想合并到一个 DLL 中,而不是使用 ILMerge,它将 DLL 和 EXE 合并到一个 EXE 中。我希望能够重用 CoreLib dll,并可能将 dll 提供给其他人,以便他们也可以使用它。
-
@Tizz ILMerge 可以将 dll 合并到另一个 dll 中!您只需告诉它输出一个 dll - 请参阅我更新的答案。