博客导读网

一个让你随便看看的地方

使用 NuGet 管理项目库

推荐
博客园- 自由、创新、研究、探索

共享和重用代码是一个很大的挑战。 不相信? 请随便走进一间中型或大型工作室,问问他们有多少日志记录库。 访问多家公司后,您将发现他们拥有比例非常高的内部日志记录库,而这些库中有一些非常不错,例如,Log4Net、NLog 和 Error Logging Modules and Handlers(即 ELMAH)。

当一位开发人员开始新项目时,他将面对一张空白的画布。 他如何去发现这些有用的库? 如何将库集成到当前项目中并管理库的依赖项和更新呢?

ELMAH 就是一个非常有用的库,是由开发人员自己编写的。 ELMAH 能够在出现异常时记录 Web 应用程序中所有未经处理的异常以及所有请求信息,例如,标头、服务器变量等。 假设您刚刚听说 ELMAH 并希望在下一个项目中使用它。

您可能会采取下列步骤:

  1. 查找 ELMAH。由于它名称独特,Bing 搜索的第一条搜索结果将是 ELMAH Google 代码页。
  2. 下载正确的 zip 包。该站点的下载页面有多个 zip 包。 您必须思考并选取正确的一个。 有时,您并不能一眼就看出正确的是哪个。
  3. “取消阻止”程序包。从 Web 下载程序包后,您需要右键单击该文件,打开“属性”对话框,然后单击“取消阻止”按钮以从该文件删除“Web 的标记”。
  4. 验证其哈希值是否与托管环境提供的哈希值相符。Google 代码站点会显示代表该 zip 文件的 QR 代码。 在您认识的开发人员中,有多少会抽出时间来根据 QR 代码验证文件?
  5. 将程序包的内容解压缩到解决方案中的特定位置。大多数开发人员会避免将程序集解压缩到 bin 目录,这是因为该目录用于生成输出而非输入,并且不在版本控制的跟踪范围之内。 实际上,有必要将该依赖项添加到版本控制之下的文件夹,并从该位置引用该程序集。
  6. 在项目中添加程序集引用。必须在 Visual Studio 项目中添加对该程序集的引用,然后才能使用该程序集。
  7. 使用正确的设置更新 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管理好你的包包

作者: shanyou 发表于 2011-12-03 11:49 原文链接

评论: 1 查看评论 发表评论


最新新闻:
· webOS 的命运几何?审判前的“调查”(2011-12-09 22:47)
· Apple Store 员工的生产力到底有多大?(2011-12-09 22:43)
· 索尼WiFi版阅读器临时降价至99美元(2011-12-09 22:40)
· 苹果称三星对诉讼案采取拖延和回避策略(2011-12-09 22:07)
· Forrester观点:社交网络的黄金时代已经终结(2011-12-09 22:03)

编辑推荐:细说 Request[]与Request.Params[]

网站导航:博客园首页  我的园子  新闻  闪存  博问  知识库

原文地址:http://www.cnblogs.com/shanyou/archive/2011/12/03/2274560.html

博客园_自由、创新、研究、探索的其他文章
http响应Last-Modified和ETag以及asp.net web api实现 Hammock for REST
HTTP协议状态码详解(HTTP Status Code) 一个基于asp.net2.0空间的webproxy程序:ASProxy
ASP.NET MVC4 Web API 堆栈将添加指定消息处理功能 REST 入门介绍
Contact Manager Web API 示例[1]CRUD 操作 Contact Manager Web API 示例[2] Web API Routing
Contact Manager Web API 示例[3] 分页和查询(Paging and Querying) Contact Manager Web API 示例[4] 异常处理(Exception Handling)
更多...

© 2010 博客导读网 BlogABC.NET 本站所有内容皆由网友推荐而来,所有博文的版权归原作者所有,如有冒犯,请邮件告知。uncracker#gmail.com