首页 > 解决方案 > Visual Studio 2017 中引用和依赖项之间的区别

问题描述

当我在 Visual Studio 2017 中创建一个新的 ASP.NET Web 应用程序时,我最终会得到一个包含一个References元素的解决方案资源管理器。

当我在 Visual Studio 2017 中创建一个新的 ASP.NET Core Web 应用程序时,我最终会得到一个包含一个Dependencies元素的解决方案资源管理器。此外,在这种情况下,NuGet 没有创建本地packages文件夹。

为什么会有这种差异?ASP.Net Web 应用程序解决方案是否可以使用相同Dependencies的元素?

标签: .netvisual-studionugetnuget-packagecsproj

解决方案


显示差异:

您在解决方案资源管理器中查看项目的方式取决于其.csproj文件的格式。在旧格式(xml 2003 或类似格式)中,您有一个References子树,其中显示了每个项目引用、包依赖项、系统框架引用和第三方库。

在新格式中,您有一个Dependencies子树,它又为每种不同类型的依赖关系提供一个子树。

两者的实现方式存在一些差异,但总的来说,唯一的大区别(如果您不进入.csproj文件等)是它们在解决方案资源管理器中的显示方式。

请注意,此显示取决于项目,因此您可以在同一解决方案中为不同项目提供不同的显示。

NuGet 包:

NuGet 包的使用和还原的差异来自以下方面。旧格式packages.config默认使用配置,这意味着每个项目都将所有需要的包保存在本地缓存中。另一方面,新格式Package Reference默认使用配置,解决方案中的所有包都恢复到用户目录中的中央缓存(通常在%user%/.nuget/packages)。


推荐阅读