我有一个项目(项目B),它引用了另一个项目(项目C),并使用了该项目中的一些方法。 现在,我有第三个项目(项目A),它只需要使用项目B方法(这些方法使用项目A方法) - 项目A使用项目C但不是直接使用。
答案 0 :(得分:4)
- 我是否需要添加对项目C的引用或仅添加项目B?
醇>
Just B就足够了。如果要在Visual Studio中添加项目引用,则添加B
的项目引用就足够了。在编译时,项目(B和C)的dll将被复制到A
的可执行路径
- 如果我要添加.dll参考,我可以添加对项目B的引用吗?
醇>
在这种情况下,您只需要添加对项目B
dll的引用,但项目C
的dll也应该在可执行文件夹中,因为项目{{ 1}}取决于它。
在这两种情况下,您都不必明确引用项目C,因为项目A中没有直接调用项目C.但请记住,在这两种情况下,您最终都会在项目中使用Project C dll可执行文件。
您可能会看到:Managing Project References - MSDN
看到@ David的comment,您无法在项目中使用循环引用。项目A使用项目B和项目B的方法,使用项目A的方法,您将无法编译此代码。您需要重新设计代码并在项目中使用层次结构,例如A - > B - > C
请参阅:Why are circular references in Visual Studio a bad practice?
答案 1 :(得分:2)
您很可能需要两者,因为B
取决于C
。如果有一个公开类型C
的方法签名,你肯定需要引用它来编译。否则,你可能会在运行时需要它。
如果可能,请始终将其添加为参考,因为IntelliSense会注意到项目引用,并会在编译之前注意方法更改。