Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .dll参考与项目参考_C#_Visual Studio 2012 - Fatal编程技术网

C# .dll参考与项目参考

C# .dll参考与项目参考,c#,visual-studio-2012,C#,Visual Studio 2012,我有一个项目(项目B),它引用了另一个项目(项目C),并使用了这个项目中的一些方法。 现在,我有第三个项目(项目a),它只需要使用项目B方法(这些方法使用项目a方法)——项目a使用项目C,但不直接使用 我需要添加对项目C的引用还是只对项目B的引用 如果我要添加一个.dll引用,我可以只添加对项目B的引用吗 您很可能需要两者,因为B取决于C。如果有一个方法签名公开了一种类型的C,那么您肯定需要引用来编译它。否则,您可能需要在运行时使用它 如果可能,始终将其添加为引用,因为IntelliSense会

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

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

  • 您很可能需要两者,因为
    B
    取决于
    C
    。如果有一个方法签名公开了一种类型的
    C
    ,那么您肯定需要引用来编译它。否则,您可能需要在运行时使用它


    如果可能,始终将其添加为引用,因为IntelliSense会在编译之前注意到项目引用并注意到方法更改。

    您很可能需要两者,因为
    B
    取决于
    C
    。如果有一个方法签名公开了一种类型的
    C
    ,那么您肯定需要引用来编译它。否则,您可能需要在运行时使用它

    如果可能,请始终将其添加为引用,因为IntelliSense会在编译之前注意到项目引用和方法更改

  • 我需要添加对项目C的引用还是只对项目B的引用
  • 只要B就够了。如果要在Visual Studio中添加项目引用,添加
    B
    的项目引用就足够了。在编译时,项目(B和C)的DLL都将复制到
    A的可执行路径中

  • 如果我要添加一个.dll引用,我可以只添加对项目B的引用吗
  • 在这种情况下,您只需要添加对项目
    B
    dll的引用,但是项目
    C
    的dll也应该位于可执行文件夹中,因为项目
    B
    依赖于它

    在这两种情况下,您都不必显式引用project C,因为project A不会直接调用project C。但请记住,在这两种情况下,您的项目中都会有project C dll作为可执行文件

    你可以看到:

    看到@David's,您的项目中不能有循环引用。项目A使用项目B的方法,项目B使用项目A的方法,您将无法编译此代码。你需要重新设计你的代码,在你的项目中有层次结构,比如A->B->C

    见:

  • 我需要添加对项目C的引用还是只对项目B的引用
  • 只要B就够了。如果要在Visual Studio中添加项目引用,添加
    B
    的项目引用就足够了。在编译时,项目(B和C)的DLL都将复制到
    A的可执行路径中

  • 如果我要添加一个.dll引用,我可以只添加对项目B的引用吗
  • 在这种情况下,您只需要添加对项目
    B
    dll的引用,但是项目
    C
    的dll也应该位于可执行文件夹中,因为项目
    B
    依赖于它

    在这两种情况下,您都不必显式引用project C,因为project A不会直接调用project C。但请记住,在这两种情况下,您的项目中都会有project C dll作为可执行文件

    你可以看到:

    看到@David's,您的项目中不能有循环引用。项目A使用项目B的方法,项目B使用项目A的方法,您将无法编译此代码。你需要重新设计你的代码,在你的项目中有层次结构,比如A->B->C


    请参阅:

    您的意思是什么?集合就是集合。通过文件或项目引用引用,它仍然引用相同的dll文件。引用项目而不是编译的dll的优点是,您可以调试步进到引用的库中,而不是被阻止到对象或类资源管理器。这在没有项目引用的情况下也是可能的。您是什么意思?集合就是集合。通过文件或项目引用进行引用,它仍然引用同一个dll文件。引用项目而不是编译的dll的优点是,您可以调试步进到引用的库中,而不是被阻止到对象或类资源管理器。也可以不引用项目。不,您不需要引用它。
    “我有第三个项目(项目A)只需要使用项目B方法(这些方法使用项目A方法)“
    -所以你有一个循环引用?听起来不太好…不,你不需要引用它
    “我有第三个项目(项目A),它只需要使用项目B方法(这些方法使用项目A方法)”
    -那么你有一个循环引用?听起来不太好。。。