2014-07-17 50 views
12

首先,如果这是一个基本问题,我很抱歉。我试图查看这个,但由于某种原因,我变得更加困惑。所以,我决定在这里问。是一个dll文件和一个nuget包是一样的吗?他们是否只是在项目中被引用?dll和nuget包有什么区别?

回答

15

当您通过Nuget包向项目添加功能时,您只需将文件添加到项目中即可。它可以是JavaScript文件(如jQuery),您的项目引用的DLL(如Newtonsoft JSON)或一大堆事物(如实体框架或Owin/SignalR) - 任何事情。

使用nuget包系统的优势在于它可以为您追踪所有内容。它会通知您,如果您添加的软件包收到更新,则会删除这些文件,并在您将该软件包从您的项目中取消时重新引用它们。它为你处理所有这些,所以你不必跟踪nuget包添加的文件,将它们放在特殊文件夹中,确保它们被复制到你的构建中,所有这些微管理的东西。

+0

当两者都可用时,使用对dll的引用比nuget包更好吗? – niico

+1

niico - 我可以随时使用nuget软件包。它可以轻松地删除软件包(引用),而不用担心清理某个目录中的DLL。 VS集成让我知道nuget-references何时更新它们。我真的更喜欢Nuget,而不是放在一个参考文件中。 – Jason

+0

相关说明:MS最近开始将nuget称为“服务器端程序包管理器”,并正在为客户端库(如JQuery)(尽管它们有时可通过nuget提供)推动凉亭和其他客户端程序包管理器。 – niico

6

来自文档,https://www.nuget.org

“什么的NuGet?的NuGet是针对微软 开发平台,包括.NET的包管理器。该客户端的NuGet工具提供 生产和消费包装的能力。该画廊的NuGet是使用 中央包库所有包装作者和消费者“。


包可以包含除其它资产,如配置文件等一个或多个DLL

1

您可以通过添加引用库到你的项目,但是当他们进行了更新,你不会注意到。

NuGet是一个Visual Studio扩展,它可以很容易地将库,组件,最重要的是它们的配置引入到Visual Studio项目中。它将帮助您管理安装在项目上的软件包,并在软件包发布新版本时通知您。

假设我创建了自己的DLL,我可以通过引用添加自己的DLL。但是,只有先打包并发布它才能在NuGet软件包库中提供它,它才会在NuGet中可用。