使用 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管理好你的包包

成为 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

Birdge.NET:将C#代码转换为JavaScript

Birdge.NET 是一个可以将C#代码转换为JavaScript的开源编译器,由 Object.NET于2015年5月推出。它允许开发者使用C#编写平台独立...

2914
来自专栏张善友的专栏

开发人员应该知道Windows 7的十大技巧

最近我在笔记本上安装了64位的Windows 7,今天逛的时候看到Scott Hanselman’s 写的一篇文章Top 10 Tips Working Dev...

1835
来自专栏逍遥剑客的游戏开发

.Net用的SQLite

1483
来自专栏张善友的专栏

性能优化工具 MVC Mini Profiler

MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC、WebForm 以及WCF 的性能分析的小程序。可以对一个...

2168
来自专栏张善友的专栏

ASP.NET SignalR 高可用设计

在 One ASP.NET 的架构图中,微软将 WebAPI 和 SignalR 归类到 Services 类型与 MVC、Web Forms 同列为一等公民,...

2627
来自专栏张善友的专栏

ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能并修复了一些bug

Microsoft最近发布了ASP.NET Identity 2,该版本支持双重认证、帐号锁定以及防伪印章功能,还增强了用户帐号和索引。此外新版本还包含一个改进...

2008
来自专栏.NET开发者社区

(码友推荐)2018-07-07 .NET及相关开发资讯速递

1.Different Ways to Compare SQL Server Tables Schema and Data

892
来自专栏Golang语言社区

IntelliJ idea配置Go开发环境

IntelliJ idea一个月,甚得我心,终弃Sublime、liteIDE。 IntelliJ idea是非常强大的一款IDE,支持丰富的插件。安装配置都是...

7786
来自专栏程序员与猫

ASP.NET Core 介绍和项目解读

标签: ASP.NETCore 1. 前言 作为一个.NET Web开发者,我最伤心的时候就是项目开发部署时面对Windows Server上贫瘠的解决方案...

2586
来自专栏js编程在工科课程中的简单应用

2.1 开发平台搭建: 工欲善其事,必先利其器

1465

扫码关注云+社区

领取腾讯云代金券