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

bil*_*lpg 3 .net c# dll runtime late-binding

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

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

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

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

Mar*_*kus 5

您可以使用Type forwarding实现此目的.这样可以将类型移动到另一个组件.在原始程序TypeForwardedTo集中,添加-attribute以指示已移动类型.

有关详细信息,请参阅此链接.