不少团队经历时间的积淀以后,都会有不少的可重用的公共技术组件。大部分的团队都会把这些公共组件生成程序集(dll)后,放到GIT或SVN的一个公共目录里面,以供各个项目中使用。起初在项目不多又或者是公共组件很少的时候,这样看起来也没有多大问题。可是随着团队愈来愈大,项目的组件增多,所封装的可重用组件愈来愈多,一些问题就会慢慢暴露出来。这个时候若是仍是使用这种方式去管理程序集,显然就不太合适了。git
咱们知道,在Java中比较经常使用的包管理工具,如Maven。实际上在不少大公司里面都会搭建本身公司的Maven私服,以管理公司的一些公共技术组件。github
实际上在.net中也有,你们也绝对不陌生,就是Nuget, 相信每一个人都从官方的nuget服务器上下载过一些第三方组件,如:log4net、quartz.net等等。web
Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工做变得更加快捷方便。这是维基百科中的定义,实际上Nuget就是一个包管理器,相似于Java的Maven,能够帮助咱们更方便的管理dll,这也是微软提供给.net平台的一个正确的包管理工具。api
而如Maven同样,Nuget也能够搭建本身的私服。这篇文章就来简单介绍一下如何搭建属于大家团队本身的Nuget服务器。缓存
从官方Nuget服务器上搜索nuget.server,点击项目url中的github路径。从github中下载nuget.server的源码。
下载并解压后的文件路径以下图所示:
服务器
下载NuGet命令行打包工具nuget.exe
下载地址:https://www.nuget.org/downloads并发
打包咱们程序框架
使用nuget.exe打包程序集
在.csproj文件目录下执行命令spec工具
nuget.exe spec //spec 在.csproj文件目录下执行命令
此时会生成一个.nuspec文件,打开这个文件
修改其中的xml属性便可(注意此处一些信息最好和AssemblyInfo.cs中的程序集信息一致)
修改完成后继续执行pack命令
这时将生成的.nupkg文件直接copy到nuget服务器IIS目录下的packages文件夹内便可
也可经过命令push推送至nuget服务器url
nuget push *.nupkg -s http://127.0.0.1:8005 123456 //push 程序包路径 选项 地址 apikey //apikey 能够在服务器webconfig中配置
完成后便可查看或使用咱们发布的程序集
若是你认为以上就结束了,那你就太天真了,实际上,咱们团队在搭建与使用过程当中仍是遇到了不少问题的,若是搭建使用中踩到了一样的坑能够参考下面几点。
今天简单介绍了如何搭建本身团队的Nuget服务器,以及如何打包并发布程序集到Nuget。实际上,大多数的.net团队仍然是在用SVN或GIT的方式去管理dll,包括我所在的某大厂,虽而后来框架研发部,提供了一个自主研发的管理工具,但我我的感受仍是不如Nuget更好用一些。
若是你的团队不知足如今的程序集管理方式,那么不妨换个姿式,搭建一个属于大家团队本身的Nuget服务器吧!固然,若是你有更好的方式,欢迎与我留言分享!