.dll引用与项目引用相比
本文关键字:引用 dll 项目 | 更新日期: 2023-09-27 18:21:52
我有一个项目(项目B),它引用了另一项目(项目C),并使用了该项目中的一些方法。现在,我有第三个项目(项目a),它只需要使用项目B的方法(这些方法使用项目a的方法)-项目a使用项目C,但不直接使用。
- 我需要添加对项目C的引用还是只添加对项目B的引用
- 如果我要添加.dll引用,我可以只添加对项目B的引用吗
- 我需要添加对项目C的引用还是只添加对项目B的引用
只要B就足够了。如果在Visual Studio中添加项目引用,则添加B
的项目引用就足够了。在编译时,项目(B和C)的dll将被复制到A
的可执行路径
- 如果我要添加.dll引用,我可以只添加对项目B的引用吗
在这种情况下,您只需要添加对项目B
dll的引用,但项目C
的dll也应该在可执行文件夹中,因为项目B
依赖于它。
在这两种情况下,都不必显式引用项目C,因为项目A不会直接调用项目C。但请记住,在这两个情况下,您最终都会在项目A的可执行文件中使用项目C dll。
您可以看到:管理项目参考-MSDN
看到@David的评论,你的项目中不能有循环引用。项目A使用项目B的方法,项目B使用项目A的方法,您将无法编译此代码。你需要重新设计你的代码,并在你的项目中有层次结构,如A->B->C
请参阅:为什么Visual Studio中的循环引用是一种糟糕的做法?
由于B
依赖于C
,因此您很可能需要两者。如果有一个方法签名公开了一种类型的C
,那么您肯定需要该引用来编译它。否则,您可能在运行时需要它。
如果可能,请始终将其添加为引用,因为IntelliSense会在编译之前注意到项目引用并注意到方法更改。