在 Visual Studio 中添加引用和将 Nuget 包添加到项目之间的区别
Posted
技术标签:
【中文标题】在 Visual Studio 中添加引用和将 Nuget 包添加到项目之间的区别【英文标题】:Difference between adding a Reference and adding a Nuget package to a project in Visual Studio 【发布时间】:2018-10-19 19:31:59 【问题描述】:我有一个 VS (2015) 项目。我看到我的项目的解决方案资源管理器视图中有一个“参考”部分,其中包括诸如 System.Core 之类的内容。我假设这些是已添加到项目中的 .dll?
我还可以右键单击项目文件(再次在解决方案资源管理器中)并选择“管理 NuGet 包”选项。我知道 NuGet 允许我向我的项目添加外部代码(例如,外部 .dll 和相关文件)。
添加对我的项目的引用和向我的项目添加 .nupkg 有什么区别?仅仅是 .nupkg 可以包含除 .dll 之外的一大堆其他东西(例如文档)吗?我为什么要使用其中一个?
【问题讨论】:
【参考方案1】:添加对我的项目的引用和添加引用有什么区别? 将 .nupkg 添加到我的项目中?
NuGet 本质上与手动添加引用没有什么区别,最终还是添加了对项目的引用。它是一个自动向我们添加程序集并对其进行管理的工具,有效地提高了我们开发项目的效率。
更多详情可以查看the document about nuget:
简而言之,NuGet 包是一个扩展名为 .nupkg 的 ZIP 文件,其中包含已编译代码 (DLL)、与该代码相关的其他文件,以及包含包版本号等信息的描述性清单。具有共享代码的开发人员创建包并将它们发布到公共或私有主机。 包消费者从合适的主机获取这些包,将它们添加到他们的项目中,然后在他们的项目代码中调用包的功能。然后 NuGet 自己处理所有中间细节。
由于 NuGet 支持私有主机以及公共 nuget.org 主机,因此您可以使用 NuGet 包来共享组织或工作组专有的代码。您还可以使用 NuGet 包作为一种方便的方式来分解您自己的代码,以便仅在您自己的项目中使用。简而言之,NuGet 包是可共享的代码单元,但不需要也不暗示任何特定的共享方式。
.
仅仅是.nupkg 可以包含一大堆其他东西吗? 来自 .dll(例如文档)?
是的,NuGet 包可以在包中包含指定的文件。
我为什么要使用其中一个?
Nuget 提供了几个额外的好处:
它通过添加对 必要的程序集,创建和添加项目文件(例如 配置)等。 它提供包更新 它可以非常方便地完成所有这些操作相信一旦你使用它,你就会发现它有很多好处。
查看Why use NuGet了解更多详情。
希望这会有所帮助。
【讨论】:
很好的答案,谢谢。为什么使用 Nuget 链接也很有帮助。以上是关于在 Visual Studio 中添加引用和将 Nuget 包添加到项目之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 Visual Studio 2012 中添加对项目的引用,“未找到项目”
无法从 Visual Studio 2008 添加对 WixUIExtension.dll、WixUtilExtension.dll 和 WixNetFxExtension.dll 的引用