什么时候应该使用Reference以及何时应该使用ProjectReference

时间:2012-07-24 13:57:41

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

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

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

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

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

这促使我们努力争取“所有项目参考”方法。

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

我的问题是 - 在什么情况下应该使用ProjectReferences而没有任何问题?在什么情况下应该绝对避免? (如果有的话)

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:3)

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