我可以拆分 .net DLL 而不必重新编译引用原始 DLL 的其他 DLL 吗?
Can I split a .net DLL without having to recompile other DLLs that reference the original one?
我有一个 C# 项目,它构建到一个包含两个 类、ClassA 和 ClassB 的 DLL 中。出于项目管理的原因,我想将 ClassB 移动到一个单独的 DLL 中,而将原始 DLL 仅保留为 ClassA。
问题是我有其他 DLL(也是从 C# 编译的)在其原始 DLL 中引用了 ClassA 和 ClassB。 ClassA 没问题,但调用 ClassB 以 TypeLoadException 结束。
(我 可以 使用新项目引用重新编译所有其他 DLL,但出于项目管理原因,我不想这样做。)
有没有一种方法可以部署新的拆分 DLL 并让其他 DLL 继续工作?或者,我真的需要硬着头皮计划部署所有这些文件的新版本吗?
您可以使用 类型转发 实现此目的。这允许将类型移动到另一个程序集。在原始程序集中,您添加了一个 TypeForwardedTo
属性来表示该类型已被移动。
查看此link了解详细信息。
我有一个 C# 项目,它构建到一个包含两个 类、ClassA 和 ClassB 的 DLL 中。出于项目管理的原因,我想将 ClassB 移动到一个单独的 DLL 中,而将原始 DLL 仅保留为 ClassA。
问题是我有其他 DLL(也是从 C# 编译的)在其原始 DLL 中引用了 ClassA 和 ClassB。 ClassA 没问题,但调用 ClassB 以 TypeLoadException 结束。
(我 可以 使用新项目引用重新编译所有其他 DLL,但出于项目管理原因,我不想这样做。)
有没有一种方法可以部署新的拆分 DLL 并让其他 DLL 继续工作?或者,我真的需要硬着头皮计划部署所有这些文件的新版本吗?
您可以使用 类型转发 实现此目的。这允许将类型移动到另一个程序集。在原始程序集中,您添加了一个 TypeForwardedTo
属性来表示该类型已被移动。
查看此link了解详细信息。