【问题标题】:Project reference vs. DLL Reference - Which is better?项目参考与 DLL 参考 - 哪个更好?
【发布时间】:2010-06-15 18:00:44
【问题描述】:

我知道关于这个主题还有其他问题,我已经查看了this question,但我希望看到更多关于这方面的讨论和信息 - 添加是更好的做法吗将项目添加到解决方案并引用该项目,或者添加对 .dll 的引用?

【问题讨论】:

    标签: visual-studio reference


    【解决方案1】:

    没有太多选择。如果您对这两个项目都有解决方案,请使用项目参考。如果您的解决方案没有项目,那么您必须使用程序集引用。

    所以真正的问题可能应该是:我是否要为这两个项目创建一个解决方案?可以,只要项目仍处于调试阶段并且可能需要修复错误。

    【讨论】:

    • 当您有多个解决方案时,情况会更加复杂。使用项目引用可能会破坏包含引用项目而不是引用项目的其他解决方案的构建。然后,Visual Studio 会静默(!)将项目引用解析为 bin/Debug 中对 dll 的文件引用,如果解决方案在 Release 中编译,这是意外的并且会中断。
    • 您可以通过始终先将父项目添加到您的解决方案来解决此问题,并且不要添加没有父(引用)项目的任何项目
    • 只是添加 - 如果您在项目 B 的方法上单击“查找所有引用”时在项目 A 上使用 dll 引用,则项目 A 的方法引用根本不会出现 = 配方错误
    【解决方案2】:

    如果您只有 dll,那么您就会被 dll 引用困住(显然)。

    如果您有源代码,那么通常最好使用项目参考。在某些情况下,您的实用程序库可能永远不会更改,但如果您需要修复错误的可能性很小,那么拥有项目参考将使调试变得更加容易。

    【讨论】:

      【解决方案3】:

      总结 - 按项目与按 DLL 的项目参考

      项目参考

      • 代码可见
      • 查找所有引用,例如在一个类上(因为代码是可见的)
      • 更适合测试(总体而言)
      • 更适合代码重新设计(影响)

      DLL 引用

      • 代码被隐藏
      • 之间的分隔,例如框架和项目(用于交付框架)
      • 更快的编译(因为 DLL 已经编译好了)

      【讨论】:

        【解决方案4】:

        嗯,当您在调试和发布模式下构建和测试时,项目参考很有帮助。如果您直接添加一个 DLL,那么您将被锁定在构建该特定 DLL 的任何内容中。项目参考允许这是构建时间决定。

        【讨论】:

        • 你说的没错。同时,它在使用 .NET 程序集时不会引起问题。它们包含 IL 代码,该代码稍后在第一次运行时在目标机器上编译。做出决定的好时机。
        【解决方案5】:

        相对于您的项目架构,您应该始终坚持问题领域内的项目。如果适用于您的环境,您应该使用 GAC。

        【讨论】:

        • GAC 与 Visual Studio 项目文件中的项目引用与 dll 引用有何关系?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 2011-01-24
        • 2013-06-13
        • 2016-08-27
        相关资源
        最近更新 更多