关于NuGet
一、NuGet是什么?
NuGet是Microsoft开发平台的程序集包管理器,它由客户端工具和服务端站点组成,客户端工具提供给用户管理和安装/卸载软件程序包,以及打包和发布程序包到NuGet服务端站点等功能,服务端站点存储已经发行的软件包,并为NuGet客户端软件包库提供服务,使软件包共享给其他的开发者。
二、NuGet服务端站点的搭建
1、打开Visual Studio创建空的Web站点,如图:

2、打开管理NuGet程序包,选择程序包源为:nuget.org 然后在搜索框中输入:NuGet.Server,如图:

当然你也可以在程序包控制台中输入下面的命令直接安装
install-package NuGet.Server
3、安装完成之后,打开web.confg 修改apikey 如图:

如果requireApiKey的值设置为false,那么apikey就可以设置为空,我这里随便搞了一个,然后服务端的站点就完成了,你可以将这个站点部署到服务器的IIS里面,看一下最后运行的结果:

三、NuGet客户工具打包和发布程序包到刚刚搭建的NuGet服务器上与其他开发者共享程序包
1、首先我们得安装NuGet客户端工具,我的Visual Studio 2015是自带的(我选择了完全安装模式),如果你的没有那么可以到nuget上下载安装包,安装包的下载地址:https://www.nuget.org/

2、将程序集打包
在打包之前先要创建一个打包清单文件.nuspec, 你可以从头到尾手动创建打包清单,或者输入下面的命令进行创建:
nuget spec
其更多选项可以参考其官方文档:https://docs.nuget.org/ndocs/tools/nuget.exe-cli-reference#spec
这个命令你可以在visual studio的程序包管理控制台里面执行,也可以在cmd里面执行,但都需要路由到需要打包的项目目录下运行,如图:

我先把它改名为dogstar.nuspec,然后你可以使用任何文本编辑器来打开这个文件,如图:

在这里我简单介绍一下下面的的几个元素,其他更多请参照官方文档(https://docs.nuget.org/ndocs/schema/nuspec)
id:程序包的唯一标识符
version:发行版本号
description:程序包的功能详细说明
releaseNotes:本次发行的版本有那些主要变更,例如:修复bug,支持全文检索
dependencies:此程序包依赖于哪些Nuget上的程序包
files:包含程序集文件和内容文件
程序集文件的目标根目录必须是lib,如:target="lib" 或者 target="lib\net40",lib目录下的文件将会安装到目标项目的bin目录下
内容文件的目标根目录必须是content,如:target="content\scripts" 或者 target="content\theme\css",content目录下的所有文件和文件夹都会被安装到目标项目下的根目录下
这里需要提醒一下的就是路径不可以用“/”分隔符,必须使用“\"分隔符
exclude属性指定不包括的文件;
关于files节点的更多内容请参照官方文档:https://docs.nuget.org/ndocs/schema/nuspec#including-assembly-files
文件清单创建完毕之后,执行下面的命令进行打包:
nuget pack dogstar.nuspec

执行命令之后会生成一个 dogstar.1.0.0.nupkg 文件,这里你会看到一堆的警告,其实打包还有可以用visual studio的项目文件(*.csproj)进行打包,具体操作请参照官方文档:https://docs.nuget.org/ndocs/create-packages/creating-a-package#creating-the-package
到此为止打包的步骤就已经完成了,下面介绍发布到nuget服务器上的操作
3、将nuget包发布到服务器上
发布的操作相当简单,其实在前面的第二部分的Nuget服务器站点搭建完成之后运行站点后的那个效果图里面就已经将方法输出来了,请看下面的命令:
nuget push dogstar.1.0.0.nupkg 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -Source http://localhost:27928/api/v2/package

四、验证结果
NuGet服务端站点和客户端打包发布都已经介绍玩了,现在回到nuget管理程序包里面验证一下结果,在验证结果之前,首先添加程序包源的设置,如图:

然后在程序包源的下拉中选择client test 将会看到我们刚刚发布的dogstar程序包,如图:

ok,马上点击安装看一下

打包的文件已经正确安装到测试项目里面,验证结果成功!
关于NuGet的更多相关文章
- NuGet镜像上线试运行
为解决国内访问NuGet服务器速度不稳定的问题,我们用阿里云服务器搭建了一个NuGet镜像,目前已上线试运行. 使用NuGet镜像源的方法如下: 1)NuGet镜像源地址:https://nuget. ...
- 通过ProGet搭建一个内部的Nuget服务器
.NET Core项目完全使用Nuget 管理组件之间的依赖关系,Nuget已经成为.NET 生态系统中不可或缺的一个组件,从项目角度,将项目中各种组件的引用统统交给NuGet,添加组件/删除组件/以 ...
- .NET Core 系列5 :使用 Nuget打包类库
NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...
- 如何在nuget上传自己的包+搭建自己公司的NuGet服务器(新方法)
运维相关:http://www.cnblogs.com/dunitian/p/4822808.html#iis 先注册一个nuget账号https://www.nuget.org/ 下载并安装一下Nu ...
- 简单搭建 nuget 内部服务器
搭建 nuget 内部服务器,最好的方式是使用 ProGet,参考博文<用 ProGet 搭建内部的 NuGet 服务器>,好处非常多,但需要使用 SQL Server 数据库,如果不想使 ...
- VS项目中使用Nuget还原包后编译生产还一直报错?
Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...
- nuget常用命令
nuget命令的用法: 一.安装 1.安装指定版本类库install-package <程序包名> -version <版本号> 2.安装到指定的项目install-packa ...
- 用ProGet搭建内部的NuGet服务器
最近团队内部用的一个很简陋的NuGet服务器出问题了,nuget push发包,客户端显示发布成功,服务器上就是没有.懶得再去排查这个问题,早就想换掉这个过于简陋的NuGet服务器,借此机会直接弃旧迎 ...
- 用命令行工具创建 NuGet 程序包
NuGet.exe 下载地址 本文翻译自: https://docs.nuget.org/Create/Creating-and-Publishing-a-Package https://docs.n ...
- 搭建自己的Nuget服务器
序言 你们公司有没有好多项目,有没有好多类库,你们的类库是在tfs中管理,还是svn或者github,又或者是各自为政版本类库随意使用? 那么你们使用者写类库的时候方便吗? 有没有更新下载,版本不一致 ...
随机推荐
- Alpha冲刺——第七天
Alpha第七天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...
- Java 将数字转为16进制,然后转为字符串类型 将空格去掉。终结版
//十进制转为十六进制 public class ArrayTest7 { public static void main(String[] args){ System.out.println(toH ...
- CentOS下php安装mcrypt扩展
CentOS下php安装mcrypt扩展 Posted on 2012-09-12 15:27 C'est la vie 阅读(48294) 评论(3) 编辑 收藏 (以下步骤均为本人实际操作,可能与 ...
- FreeMarker(XML模板)导出word
在项目中使用它完成的功能是按照固定的模板将数据导出到Word.比如台账.在完成后将处理过程按照台账的要求导出,有时程序中需要实现生成标准Word文档,要求能够打印,并且保持页面样式不变. 这个功能就是 ...
- 服务器控件的异步请求——UpdatePanel和ScriptManager
aspx文件里面有以下一段代码 <body> <form id="form1" runat="server"> <div> ...
- Spring学习 6- Spring MVC (Spring MVC原理及配置详解)
百度的面试官问:Web容器,Servlet容器,SpringMVC容器的区别: 我还写了个文章,说明web容器与servlet容器的联系,参考:servlet单实例多线程模式 这个文章有web容器与s ...
- hdu-题目:1058 Humble Numbes
http://acm.hdu.edu.cn/showproblem.php?pid=1058 Problem Description A number whose only prime factors ...
- 在Delphi中动态地使用SQL查询语句 Adoquery sql 参数 冒号
在Delphi中动态地使用SQL查询语句 在一般的数据库管理系统中,通常都需要应用SQL查询语句来提高程序的动态特性.下面介绍如何在Delphi中实现这种功能.在Delphi中,使用SQL查询语句的途 ...
- 内存测试——Android Studio自带内存检测功能
AndroidStudio 自带 CPU 和内存检测工具,绘制出变化图,可以直观明了的看出内存和cpu的变化曲线. 手机连接电脑,选择要调试的手机,选择要检测的应用进程,Memory是内存监控,CPU ...
- 【入门向】使用 MetaHook Plus 绘制 HUD
MetaHook Plus 是一个GoldSrc引擎(就是的Half-Life.CS1.6的引擎)的客户端插件平台,它可以加载我们自己开发的DLL插件. 首先你需要安装一个 Visual Studio ...