Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以拆分.net DLL而不必重新编译引用原始DLL的其他DLL吗?_C#_.net_Dll_Runtime_Late Binding - Fatal编程技术网

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

C# 我可以拆分.net DLL而不必重新编译引用原始DLL的其他DLL吗?,c#,.net,dll,runtime,late-binding,C#,.net,Dll,Runtime,Late Binding,我有一个C#项目,它构建到一个包含两个类的DLL中:ClassA和ClassB。出于项目管理的原因,我想将ClassB移动到一个单独的DLL中,将原始DLL只保留给ClassA 问题是,我有其他DLL(也是从C#编译的)在它们的原始DLL中引用了ClassA和ClassB。ClassA很好,但调用ClassB最终会导致TypeLoadException (我可以用它们的新项目引用重新编译所有其他DLL,但出于项目管理的原因,我不想这样做。) 是否有一种方法可以部署新的拆分DLL并让其他DLL继续

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

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

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

是否有一种方法可以部署新的拆分DLL并让其他DLL继续工作?或者,我真的需要咬紧牙关,计划部署所有这些文件的新版本吗?

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


有关详细信息,请参阅此部分。

是否建议在文档中留下注释,说明相应的零件已移动,并且在新项目中,应直接引用新组件?我在想,人们不会希望它永远出现在代码中…@Fildor是的,如果我要添加或更改使用该类的代码,我会将其添加到团队文档中,并直接使用新位置。后续问题: