共享和重用代码是一个很大的挑战。 不相信? 请随便走进一间中型或大型工作室,问问他们有多少日志记录库。 访问多家公司后,您将发现他们拥有比例非常高的内部日志记录库,而这些库中有一些非常不错,例如,Log4Net、NLog 和 Error Logging Modules and Handlers(即 ELMAH)。
当一位开发人员开始新项目时,他将面对一张空白的画布。 他如何去发现这些有用的库? 如何将库集成到当前项目中并管理库的依赖项和更新呢?
ELMAH 就是一个非常有用的库,是由开发人员自己编写的。 ELMAH 能够在出现异常时记录 Web 应用程序中所有未经处理的异常以及所有请求信息,例如,标头、服务器变量等。 假设您刚刚听说 ELMAH 并希望在下一个项目中使用它。
您可能会采取下列步骤:
查找 ELMAH。由于它名称独特,Bing 搜索的第一条搜索结果将是 ELMAH Google 代码页。
下载正确的 zip 包。该站点的下载页面有多个 zip 包。 您必须思考并选取正确的一个。 有时,您并不能一眼就看出正确的是哪个。
“取消阻止”程序包。从 Web 下载程序包后,您需要右键单击该文件,打开“属性”对话框,然后单击“取消阻止”按钮以从该文件删除“Web 的标记”。
验证其哈希值是否与托管环境提供的哈希值相符。Google 代码站点会显示代表该 zip 文件的 QR 代码。 在您认识的开发人员中,有多少会抽出时间来根据 QR 代码验证文件?
将程序包的内容解压缩到解决方案中的特定位置。大多数开发人员会避免将程序集解压缩到 bin 目录,这是因为该目录用于生成输出而非输入,并且不在版本控制的跟踪范围之内。 实际上,有必要将该依赖项添加到版本控制之下的文件夹,并从该位置引用该程序集。
在项目中添加程序集引用。必须在 Visual Studio 项目中添加对该程序集的引用,然后才能使用该程序集。
使用正确的设置更新 web.config。这可能意味着您要使用 Bing 或 Google 进行更多搜索才能找到配置文件所需的正确设置。
真是很麻烦! 现在,假设您必须为 10 至 15 个依赖项执行这些操作。 当您的应用程序要发布新版本时,您需要花费大量时间为应用程序的依赖项搜索更新。
NuGet 是一种 Visual Studio 扩展,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。 NuGet 程序包是打包成一个文件的文件集,扩展名是 . nupkg,使用开放打包约定 (OPC) 格式。
OPC 仅仅是具有某些元数据的 zip 文件的首字母缩写词。 事实上,您可能早已熟悉 OPC,因为 Word 和 Excel 文档正是使用此格式。 如果您取一个 .docx 文件并将文件扩展名改为 .zip,您实际可以打开它并浏览里面的内容。 . nupkg 文件同样如此。
NuGet 产品同样随附能够轻松创建和发布程序包的实用工具。具体可以参照博客园的Dudu文章:程序员,用NuGet管理好你的包包。
成为 NuGet 创建者
创建Nuget 库
http://sidewinder.codeplex.com/
NuGet 2.0带来新的打包规约,但还不支持Mono、Python和C++
NuGet 2.0 (.NET软件包管理器) 发布了-现在升级吧
NuGet套件還原步驟使用Visual Studio 2012 為例
Team Foundation Server - 使用NuGet搭配版本控制
搭建NuGet私服
集成NuGet Package到Jenkins CI