NuGet的使用和服务搭建

简介: NuGet的使用和服务搭建

问题的由来


   最近部门,在开发的时候遇到一个问题,现在有项目A B C三个项目,项目B和C分别提供了组件库由项目A直接引用。那么每次开打项目A获取最新后,同时还得打开项目B C获取最新然后编译一次。抛开设计方面的问题,假如以后还多了项目E F G,引用和被引用,那么打开一个项目想编译一次,还得同时打开N个项目。当时把问题反馈后,有人建议使用NuGet。


NuGet简介


    NuGet可以方便快捷添加 移除 更新 第三方类库,常用的类库,例如log4net,Json.net等都可以直接通过NuGet下载,如果自己编写了些认为有用并且希望和大家分享的工具库,也可以通过注册账号后,上传上去。当然!如果不希望分享出去,特别公司内部使用的,我们可以搭建属于自己的NuGet服务进行管理。


201412003008348.png

 

初识NuGet


  在visual studio 2010 sp1和 2012后版本都已经自带NuGet,如果没有,也可以在【工具】-【拓展和更新】里下载,下载完后重启visual studio就有了。


image.png

  

打开【工具】-【管理解决方案的NuGet程序包】,搜索【Json.net】,点击安装。当然,用熟练后你也可以打开【工具】-【程序包管理器控制台】,通过命令【Install-Package Newtonsoft.json】进行安装

 image.png

  

如果程序包不想用了,也可以通过上面的界面进行卸载,或者通过命令【UnInstall-Package Newtonsoft.json】进行卸载。


NuGet.Server 的搭建


  上面已经提过,公司内部使用的时候,不希望将程序分享出去,只想内部共享和管理。那么你可以通过使用NuGet.Server进行搭建一个属于你的NuGet服务。

  创建一个新的Web项目【MyNuGetServer】(名字自己起),选择模板【Empty】,框架【Web Forms】,确定

  

image.png


  打开【工具】-【管理解决方案的NuGet程序包】,搜索【NuGet.Server】,点击安装。通过命令【Install-Package NuGet.Server】进行安装


  image.png

 

 安装完了后,打开【Web.config】,发现自动添加了很多东西,先找到<add key="apiKey" value="123456789"/>,其他可以暂时不理,【apikey】将会在上传包的时候使用到,自己随意填一个。假如需要发布到nuget.org也就是公开的,那么你注册了个后NuGet的帐号后,微软将会给一个guid的key给你,发布到nuget.org的时候将会用到。


  填写完apikey后,Ctrl+F5运行一下。出现下面的页面证明你搭建成功了。没错!搭建成功了,就是怎么简单。


image.png

 

 随便找一个后缀名为nupkg的,放到项目的【Packages】文件夹里,发布然后部署到IIS,具体部署到IIS的流程,我就不多说了。注意两点,文件夹的权限和【应用程序池】选择4.0集成


  完成上面的步骤后,打开你的站点/nuget/Packages这个路径,出现以下页面就证明你部署成功了。如果打开的页面有点出入,可以选择用IE浏览器查看。而页面里面显示CalculationFormula,就是我添加上去的程序包。


image.png

 

 这个时候,打开【工具】-【管理解决方案的NuGet程序包】-【设置】出现下面的界面,添加你部署好的nuget.server站点,注意,得加上/nuget这个路径


image.png


点击确定后,返回到【管理解决方案的NuGet程序包】界面,就会发现你上传的程序包,可以显示出来让你安装了。


image.png


  整个搭建完成了,可以看到,nuget.server是不需要数据库的,只要把程序包放在Packages文件夹就完事了,想对文件操作也很方便,但是我们也不会经常跑去服务器去对程序包进行更新删除,这样太low了。


  在/nuget/Packages这个页面看到,我们是无法操作程序包的,包括添加删除更新。nuget约定是不允许删除程序包的,有问题的NuGet让你更新版本修复,当然你也可以自己创建一个操作页面,对/nuget/Packages里的文件进行操作删除。


  那么上传和更新呢?用命令nuget pack和nuget push,当然了,初学的用图形化【NuGet Package Explorer】处理会更加方便


NuGet Package Explorer的使用


  打开【NuGet Package Explorer】点击【Create a new package】这个选项,拖一个dll到界面的右边


  image.png

 

 ID:输入名称,也是包的唯一标识

  Version:版本号,nuget是通过版本号识别是否最新版本

  Description:描述,程序包的功能描述

  Framework assemblies:程序包所需要引用的.net原生组件

  保存后,点击Publish,填写你的nuget站点,并且输入之前你设置的【apikey】,点击Publish,上传成功。注意不需要追加任何路径,只要站点的url就可。


  image.png


  更新的话,重复上面操作,不过要修改版本号,并且版本号往上加,Nuget才会识别,有兴趣的同学可以反编译nuget.server看看


  image.png

目录
相关文章
|
5月前
|
C++ iOS开发
02 C++ - 开发环境下载与安装(CLion)
02 C++ - 开发环境下载与安装(CLion)
93 0
|
10月前
|
API
Nuget发布自己的类库包之开发
Nuget发布自己的类库包之开发
79 0
|
C++
NuGet的使用心得
NuGet的使用心得
175 0
NuGet的使用心得
VS2015中使用NuGet离线安装程序包
1、解决方案资源管理器中,右键“引用”,选择“管理NuGet程序包”; 2、点击图中设置按钮; 3、选择程序包源的位置(网络上下载好的nupkg文件位置),把不相关的选项可以勾掉; 4、选择对应下载的程序包,点击右侧安装,注意其依赖项。
3485 0
|
Python Windows
如何在windows安装搭建django开发环境和所需要的软件
Python的虚拟环境的安装与配置(virtualenv) win+r 打开cmd pip install virtualenv 如下(): Microsoft Windows [版本 10.0.16299.492] (c) 2017 Microsoft Corporation。
1664 0
|
开发工具 Windows 持续交付
|
关系型数据库 Oracle MySQL
一键打包并发布到Nuget平台
目标是只要执行一个命令就自动发布新版本到nuget平台 第一步在nuget官网注册一个账号 会有一个APIKEY 如下图   在工程里面添加一个Gruntfile.js 然后copy以下代码 在vs里也可以执行grunt任务   那么nuspec文件是怎么出来的呢 在命令提示符下,进入.
1081 0