当我在Visual Studio 2017中创建新的ASP.NET Web应用程序时,最终得到一个包含References
元素的解决方案资源管理器。
当我在Visual Studio 2017中创建新的ASP.NET Core Web应用程序时,最终得到一个包含Dependencies
元素的解决方案资源管理器。此外,在这种情况下,NuGet不会创建本地packages
文件夹。
为什么会有这种区别?可以在ASP.Net Web应用程序解决方案中使用相同的Dependencies
元素吗?
答案 0 :(得分:2)
为什么会有这种区别?
它们基本上没有什么不同,它们用于存储和管理引用。就像Lex所说的那样, Dependencies 是表示不同类型引用的一种更好的方法,我们可以清楚地知道引用的来源,SDK,nuget等,以便我们可以更有效地管理引用。
查看来自Introduction to ASP.NET Core的信息:
ASP.NET Core是对ASP.NET 4.x的重新设计,具有体系结构更改 从而形成了更精简,更模块化的框架。
。
ASP.Net Web应用程序解决方案是否可以具有相同的Dependencies元素?
由于在GitHub上仍然存在大量关于ASP.NET(非核心)应用程序支持新的csproj格式的公开问题。我们无法将ASP.Net Web应用程序更改为新的项目类型,我们无法与ASP.Net Web应用程序具有相同的Dependencies元素。
但是,如果您有兴趣,可以检查this thread,了解如何转换为新项目类型。
希望这会有所帮助。
答案 1 :(得分:2)
显示差异:
在解决方案资源管理器中查看项目的方式取决于其.csproj
文件的格式。
在旧格式(xml 2003或类似格式)下,您有一个References
子树,其中显示了每个项目引用,程序包依赖项,系统框架引用和第三方库。
在新格式中,您有一个Dependencies
子树,而该子树又为每种不同类型的依赖项都有一个子树。
两者的实现方式存在一些差异,但总的来说,唯一的最大区别(如果您不进入.csproj
文件等)是它们在解决方案资源管理器中的显示方式。
请注意,此显示是与项目相关的,因此您可以在同一解决方案中为不同项目使用不同的显示。
NuGet软件包:
NuGet软件包的使用和恢复方面的差异来自以下方面。旧格式默认使用packages.config
配置,这意味着每个项目都将需要的所有软件包保存在本地缓存中。
另一方面,默认情况下,新格式使用Package Reference
配置,该解决方案中的所有程序包都还原到用户目录中的中央缓存中(通常位于%user%/.nuget/packages
)。