【问题标题】:When should a Reference be used and when should a ProjectReference be used何时应使用 Reference 以及何时应使用 ProjectReference
【发布时间】:2012-07-24 13:57:41
【问题描述】:

我相信我完全理解两者之间的区别。

Reference 只是指向使用的某个程序集(无论是指定完整路径,还是在 GAC 中查找)。

ProjectReferences 假定引用的项目与引用的项目位于相同的 VS 解决方案中,并使用项目 GUID 来确定应该引用哪个项目。

拥有 ProjectReference 的好处是 Visual Studio 可以检测依赖项并在必要时重新构建它们(如果我引用项目 A 并且它没有构建,它将被重新构建)。此外,将采用引用的项目输出(基于当前活动配置等)。

这促使我们努力采用“All ProjectReference”方法。

我的问题是这会导致包含许多依赖项项目的解决方案文件。如果依赖项本身有引用程序集,这些将作为 ProjectReferences 添加,强制它们由同一个 .sln 文件构建,而不是独立的。

我的问题是——在什么情况下应该毫无疑问地使用 ProjectReferences?在什么情况下应该绝对避免它们? (如果有的话)

【问题讨论】:

    标签: c# .net visual-studio-2010 visual-studio reference


    【解决方案1】:

    如果您正在为引用的项目开发代码,那么最好使用项目引用。但是,如果您购买第三方控件(例如 Telerik RadControls),您可能只会引用 DLL(参考)。

    如果您不需要编译它,更改版本号等。只需使用参考。

    此外,它不会每次都编译项目引用。仅当它看到代码已更改或导致其触发的其他一些事情(例如完全重建或它自己的引用中的某些更改)时。

    【讨论】:

      【解决方案2】:

      如果您正在对这些引用进行修改并需要重新编译,最好保留项目引用,但如果依赖项开发完成,请将其编译为发布,将它们注册到 GAC 并使用程序集引用来加快编译时间!

      【讨论】:

      • 参考项目也在开发中。问题是我是否应该将它们都保留为项目参考。这导致项目和解决方案文件之间的耦合。除了这个,我还有什么其他选择...
      • 您可能会设置一个构建系统(例如 CC.NET)来编译项目或识别目录中的更改,将 DLL 复制到两个解决方案都知道的位置并使用那作为参考。但是仅使用项目参考恕我直言有点复杂且容易得多。
      猜你喜欢
      • 2016-04-30
      • 2020-12-21
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      相关资源
      最近更新 更多