我可以拆分.net DLL而不必重新编译引用原始DLL的其他DLL吗?

时间:2017-12-04 14:20:15

标签: c# .net dll runtime late-binding

我有一个C#项目,它构建成一个包含两个类ClassA和ClassB的DLL。出于项目管理的原因,我想将ClassB移动到一个单独的DLL中,只保留原始DLL与ClassA。

问题是我有其他DLL(也是从C#编译)在其原始DLL中引用ClassA和ClassB。 ClassA很好,但调用ClassB最终会产生TypeLoadException。

(我可以使用他们的新项目引用重新编译所有其他DLL,但出于项目管理的原因,我宁愿不这样做。)

有没有办法可以部署我的新拆分DLL并让其他DLL继续工作?或者,我是否真的需要咬住众所周知的子弹并计划部署所有这些文件的新版本?

1 个答案:

答案 0 :(得分:5)

您可以使用类型转发来实现此目的。这样可以将类型移动到另一个组件。在原始程序集中,添加TypeForwardedTo - 属性以表示该类型已被移动。

有关详细信息,请参阅此link