.dll引用与项目引用相比

本文关键字:引用 dll 项目 | 更新日期: 2023-09-27 18:21:52

我有一个项目(项目B),它引用了另一项目(项目C),并使用了该项目中的一些方法。现在,我有第三个项目(项目a),它只需要使用项目B的方法(这些方法使用项目a的方法)-项目a使用项目C,但不直接使用。

  1. 我需要添加对项目C的引用还是只添加对项目B的引用
  2. 如果我要添加.dll引用,我可以只添加对项目B的引用吗

.dll引用与项目引用相比

  1. 我需要添加对项目C的引用还是只添加对项目B的引用

只要B就足够了。如果在Visual Studio中添加项目引用,则添加B的项目引用就足够了。在编译时,项目(B和C)的dll将被复制到A 的可执行路径

  1. 如果我要添加.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会在编译之前注意到项目引用并注意到方法更改。