Nuget快捷实践

Nuget快捷实践

简介

本文主要包含三个部分,即建立nuget包、上传nuget包和删除nuget包。旨在引导快速使用nuget打包和使用,并实现对于nuget的简单管理。git

本文使用的nuget服务是基于自行搭建的nuget server v3.0.0.0。具体搭建方法能够参考nuget官方的指导教程github

另外文章中还涉及到两个程序:服务器

  • Nuget Package Explorer:v4.1.38
  • nuget.exe:v4.5.1.4879

本文阅读时间大约为十分钟。工具

建立nuget包

对于nuget的打包方式的权威指南固然是nuget官方的指导文档。这份文档优势是对于nuget包的结构讲解的很清楚,缺点是不太符合本文的快速实践的意图。针对这个状况也有解决办法,万能的网友们开发了Nuget Package Explorer,目前该项目托管在Github上,安装了Win10系统的能够直接到微软应用商店下载网站

打开Nuget Package Explorer后选择新建package,在新建界面中填写必要信息。包括包的Id,版本号,做者,发布说明等。命令行

以上图为例,在新建nuget包时重点填写以下信息:3d

  • Id:包的惟一标识,本文以Company.Application.Model.Lib为例
  • Version:当前发布的类库版本号,本文以1.0.0为例
  • Title:类库名称
  • Authors:做者
  • Owners:全部者
  • Description:类库描述
  • Release Notes:当前版本的发布说明

若是须要添加dll文件,则在右侧的Package Contents空白区域右键,在菜单中选择Add Lib Folder,并在新出现的lib上右键,在菜单中选择“Add Existing File...”。操做界面参考下图。code

建立有依赖的nuget包

若是编译类库时若是有的dll是别的nuget包的,最好是将被依赖的nuget包添加到当前nuget包的依赖项中。不然用户同时下载两个类库时,可能出现相同的dll文件被覆盖的状况,以致于难于控制dll的版本,并且容易出现编译问题。server

那么如何添加依赖项呢?参考下图的步骤:blog

在填写类库信息的Package Metadata页最下方有个按钮,点击后弹出相关的编辑页面。下图以标注的形式说明操做顺序:

  1. 点击Edit Dependencies按钮弹出依赖项编辑页面
  2. 点击Groups旁边的加号按钮,Tip是Add a new group,不要编辑Target Framework编辑框
  3. 点击依赖项编辑页面下方的小手图标的按钮,Tip是Select dependency from nuget feed
  4. 在弹出的Select package页面选择相关的依赖项并双击,完成选择
  5. 使用本身搭建的nuget站点时,Select package页面的Package Source多是http://域名:端口/nuget/

上传nuget包

上传nuget包的方式很简单,在Nuget Package Explorer的File->Publish菜单,就能够打开nuget上传页面。该页面须要填写两个内容:

  • Publish Url:nuget服务器的发布地址,能够在nuget server首页查看到
  • Publish key or PAT:发布时验证合法性的密钥,能够跟nuget server的管理员询问获得

删除nuget包

通过上面的几个步骤以后,nuget包就已经完成打包和发布工做了,而且能够提供给其余同事使用。可是若是不当心上传了错误的nuget包,或者在发布后一段时间发现有的nuget包版本存在严重问题,不能提供给其余人使用,并且想要删掉该怎么办呢?

对此Nuget Package Explorer表示无能为力,要完成这个工做能够借助nuget官方提供的nuget.exe工具来完成这个事情。

nuget.exe支持delete命令,详细文档能够参考此处

从官方网站下载nuget.exe在命令行中直接执行nuget.exe后(不含参数),会列出nuget程序支持的全部命令:

输入nuget help delete,弹出以下提示:

以本文中上传的nuget包Company.Application.Model.Lib v1.0.0为例,删除命令是:

nuget delete Company.Application.Model.Lib 1.0.0  -ApiKey xxxx -Source http://ip:port/nuget

执行命令后会弹出提示,提示是否真的须要删除,直接输入y并回车就ok了。

总结

相对于传统的dll管理方式,使用nuget的方式能够极大的提升方便性并有效的对于依赖项进行版本化的管理。解决方案编译时还能自动下载nuget包的相关内容,有条件的状况下仍是尽可能使用nuget进行公共文件的管理。

参考资料

相关文章
相关标签/搜索