我相信我完全理解两者之间的区别。
引用只是指向使用的某个程序集(无论是指定完整路径,还是在GAC中查找它)。
ProjectReferences 假设引用的项目与引用项目位于同一VS解决方案中,并使用项目GUID来确定应引用哪个项目。
拥有 ProjectReference 的好处是Visual Studio可以检测依赖项并在必要时重建它们(如果我引用项目A并且它没有构建,它将被重建)。此外,将引用引用的项目输出(基于当前的活动配置等)。
这促使我们努力争取“所有项目参考”方法。
我的问题是这会导致解决方案文件中包含许多依赖项目。如果依赖项本身具有引用程序集,则这些程序集将作为ProjectReferences添加,强制它们由相同的.sln文件构建,而不是独立的。
我的问题是 - 在什么情况下应该使用ProjectReferences而没有任何问题?在什么情况下应该绝对避免? (如果有的话)
答案 0 :(得分:3)
如果您正在为引用的项目开发代码,那么这是使用项目引用的理想选择。但是,如果您购买第三方控件(例如Telerik RadControls),您可能只会引用DLL(参考)。
如果您不需要编译它,请更改版本#等。只需使用参考。
此外,它不会每次都编译项目引用。只有当它看到代码已经改变或者其他一些导致它被触发的东西时(例如完全重建,或者它自己的引用中的某些更改)。
答案 1 :(得分:3)
如果您正在对这些引用进行修改并需要重新编译它,最好保留项目引用,但如果依赖开发已完成,请将其编译为发行版,将它们注册到GAC并使用程序集引用来加快编译时间! / p>