一个跨越多个文件的程序集

时间:2011-06-03 10:16:31

标签: c#

我知道1个命名空间可以跨多个程序集,而且1个程序集可以包含多个名称空间。

然而,让我感到困惑的是,一个程序集如何跨越多个文件。是通过简单地在不同的目录中创建具有相同名称的多个程序集来完成的吗?这就是它的全部吗?

2 个答案:

答案 0 :(得分:1)

不可能这样做,因为每个组合都包含自己的版本信息......所以即使你创建了两个具有相同名称的程序集,它们也会因版本信息而不同。

此问题称为DLL hell,由.net

解决

修改

您可以使用3.5中提供的扩展方法来扩展DLL ...

答案 1 :(得分:0)

不建议使用多模块组件。在非常具体的情况下,您需要一个多模块组件(例如,在一个组件中混合使用多种语言),但这有几个问题。

程序集是.NET中最小的可移植代码单元,包含自己的版本信息(正如Pranay Rana已经指出的那样)。这一点信息被命名为程序集的清单。多模块程序集将具有一个清单模块和一个或多个非清单模块。

其他模块不能在组件外部使用 - 组件仍然是最小的可移植代码单元。但是,它们可以省略(也许可以按需下载)。

有关详细信息,请参阅多模块程序集的经典帖子:http://blogs.msdn.com/b/junfeng/archive/2004/07/15/183813.aspx