C#项目参考的问题

Wit*_*eso 16 c# dll visual-studio-2005 reference

我有ac#解决方案,它由众多项目组成.

我有一个项目是我的基础组件,包含其他项目使用的所有常见信息.所有其他项目都引用了基础组件.

我在我的baseassemblies中添加了一个dll引用,但所有其他项目都看不到它.

我怎样才能使其他项目可以看到baseassemblies正在引用的DLL?我不想将DLL添加到所有项目中,因为这会破坏我的基础组件项目的目的.

BFr*_*ree 23

正确的方法是让您的其他程序集不需要引用其他DLL.正确执行此操作的方法是不让基本程序集公开该DLL中的任何类型.在基础程序集中包含所需的所有功能,并确保使用基础程序集的任何人都不需要了解底层dll的基本程序集.否则,每个将引用基本程序集的项目,如果需要使用该dll中包含的内容,则必须引用它.

  • 在大型代码库的许多情况下,这是不实际的.这是一个很好的"理论"答案,但它需要在编码和测试方面付出更多的额外努力才能使(通常)没有增值.我不是说它从来都不合适当然...... (2认同)

Ric*_*ard 10

.NET中没有传递引用.如果程序集需要引用另一个程序集,则它必须直接执行,它不能"继承"来自另一个引用的引用.

注意,项目只需要引用它直接使用类型的程序集.如果A使用B,而B使用C,但A不直接使用C,那么A只需要直接引用B(加载器将处理B引用C).