阳江特产:你的团队需要一个准确的程序集(dll)治理姿势

admin 2个月前 (09-01) 科技 58 1

许多团队履历时间的积淀之后,都市有许多的可重用的公共艺组件。大部分的团队都市把这些公共组件天生程序集(dll)后,放到GIT或SVN的一个公共目录内里,以供各个项目中使用。早先在项目很少又或者是公共组件不多的时刻,这样看起来也没有多大问题。然则随着团队越来越大,项目的组件增多,所封装的可重用组件越来越多,一些问题就会逐步露出出来。这个时刻若是照样使用这种方式去治理程序集,显然就不太合适了。

我们知道,在JAVa中对照常用的包治理工具,如Maven。实际上在许多大公司内里都市搭建自己公司的Maven私服,以治理公司的一些公共手艺组件。

实际上在.net中也有,人人也绝对不生疏,就是Nuget,&NBsp;信赖每个人都从官方的nuget服务器上下载过一些第三方组件,如:log4net、quartz.net等等。

Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的事情变得加倍快捷利便。这是维基百科中的界说,实际上Nuget就是一个包治理器,类似于Java的Maven,可以辅助我们更利便的治理dll,这也是微软提供给.net平台的一个准确的包治理工具。

而如Maven一样,Nuget也可以搭建自己的私服。这篇文章就来简朴先容一下若何搭建属于你们团队自己的Nuget服务器。

一、下载Nuget.Server

    从官方Nuget服务器上搜索nuget.server,点击项目url中的github路径。从github中下载nuget.server的源码。

下载并解压后的文件路径如下图所示:

二、搭建Nuget.Server

  1. 打开项目文件NuGet.Server.sln,找到NuGet.Server,右键公布,选择文件系统(跟公布web程序一样,公布到IIS中)。
  2. IIS新建站点MyNuGet
    阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第1张
    启动程序泛起以下页面代表搭建乐成
    阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第2张
  3. 注重:若点击here泛起404页面如下图所示:
    阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第3张
    可以通过VS运行起来Nuget.Server项目,然后将bin目录替换IIS下的bin目录,即可解决。泛起下图代表搭建乐成
    阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第4张
    打开VS的Nuget治理器,点击图中设置图标,新建我们自己的nuget服务器
    阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第5张
    之后就可以连上我们自己搭建的服务器了
    阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第6张

三、自建NuGet基本使用

  1. 下载NuGet下令行打包工具nuget.exe
    下载地址:https://www.nuget.org/downloads

  2. 打包我们程序

  • 方式1:通过类库文件csproj的方式打包
    首先打开我们程序的AssemblyInfo.cs文件修改程序集信息
    阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第7张

使用nuget.exe打包程序集

在.csproj文件目录下执行下令spec

nuget.exe spec //spec 在.csproj文件目录下执行下令

阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第8张
此时会天生一个.nuspec文件,打开这个文件
修改其中的xml属性即可(注重此处一些信息最好和AssemblyInfo.cs中的程序集信息一致)
阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第9张
修改完成后继续执行pack下令
阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第10张
这时将天生的.nupkg文件直接copy到nuget服务器IIS目录下的packages文件夹内即可
也可通过下令push推送至nuget服务器

nuget push *.nupkg -s http://127.0.0.1:8005 123456 //push 程序包路径 选项 地址 apikey
//apikey 可以在服务器wEBConfig中设置

完成后即可查看或使用我们公布的程序集
阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第11张

阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第12张

四、问题

若是你以为以上就竣事了,那你就太无邪了,实际上,我们团队在搭建与使用过程中照样遇到了许多问题的,若是搭建使用中踩到了同样的坑可以参考下面几点。

  1. 在刚开始使用的时刻经常由于失误或者程序有问题从而导致需要重新公布nuget包,然则发现笼罩掉原来的之后,项目里更新下来的始终照样原来的程序。
    解决:稳重稳重再稳重打包,需要重新公布包的时刻可以升级,不能笼罩。(那时以为这个器械只能升级不能笼罩)
  2. 用了一段时间后,由于那时至提供了nuget治理包的手艺方案,却没有响应的使用规范与制度,导致团队nuget包杂乱,开发人员胡乱升级,胡乱引用nuget包,终于有一天造成大问题。因此需要制订一个完善的使用规范与制度,包罗若何打包,若何公布,谁来打包,谁来公布,稳重打包、升级、专人治理等
  3. 由于问题2引起的问题,因此决议重新整理nuget包(不破不立),于是重新搭建了一个nuget服务器,重新规整虽有的程序集、组件、重新打包公布等,然则发现迁移到新的后,项目中下载下来的程序集照样原来的。(又遇到了问题1)。这次灵感一来发现问题解决方案。VS2017通过工具->选项->消灭所有NuGet缓存 再重新下载包问题即可解决
    阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第13张
    若没有VS2017或找不到清晰NuGet缓存选项,也可找到自己机械上nuget的缓存文件夹删除掉内里对应的内容也可以,一样平常是在C:\Users\administrator.nuget
    阳江特产:你的团队需要一个准确的程序集(dll)治理姿势 第14张

小结

今天简朴先容了若何搭建自己团队的Nuget服务器,以及若何打包并公布程序集到Nuget。实际上,大多数的.net团队仍然是在用SVN或GIT的方式去治理dll,包罗我所在的某大厂,虽然厥后框架研发部,提供了一个自主研发的治理工具,但我个人感觉照样不如Nuget更好用一些。

若是你的团队不满足现在的程序集治理方式,那么不妨换个姿势,搭建一个属于你们团队自己的Nuget服务器吧!固然,若是你有更好的方式,迎接与我留言分享!

,

Sunbet

www.ysycy.com与伊顺源清真餐饮达成战略合作,在伊顺及亚太地区建立直营平台。为Sunbet会员提供线上多种娱乐游戏,将用完善的技术、贴心的服务、雄厚的资金赢取每位Sunbet代理、会员的口碑。

AllBetGaming声明:该文看法仅代表作者自己,与本平台无关。转载请注明:阳江特产:你的团队需要一个准确的程序集(dll)治理姿势

网友评论

  • (*)

最新评论

  • Allbet手机版下载 2020-09-01 00:16:31 回复

    Allbet Gmaing代理欢迎进入Allbet Gmaing代理(www.aLLbetgame.us):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。我感觉很尊重读者

    1

站点信息

  • 文章总数:657
  • 页面总数:0
  • 分类总数:8
  • 标签总数:1016
  • 评论总数:245
  • 浏览总数:10378