(精华)2020年10月10日 高并发高可用 .NET实现持续集成与自动化部署(使用NuGet.Server搭建公司内部的Nuget(包)管理器)

一、下载Nuget.Server

从官方Nuget服务器上搜索nuget.server,点击项目url中的github路径。从github中下载nuget.server的源码。在这里插入图片描述
下载并解压后的文件路径如下图所示:在这里插入图片描述

二、搭建Nuget.Server

  1. 打开项目文件NuGet.Server.sln,找到NuGet.Server,右键发布,选择文件系统(跟发布web程序一样,发布到IIS中)。
    在这里插入图片描述
  2. IIS新建站点MyNuGet
    在这里插入图片描述
    启动程序出现以下页面代表搭建成功
    在这里插入图片描述
  3. 注意:若点击here出现404页面如下图所示
    在这里插入图片描述
    可以通过VS运行起来Nuget.Server项目,然后将bin目录替换IIS下的bin目录,即可解决。出现下图代表搭建成功在这里插入图片描述
    打开VS的Nuget管理器,点击图中设置图标,新建我们自己的nuget服务器在这里插入图片描述
    之后就可以连上我们自己搭建的服务器了在这里插入图片描述

三、自建NuGet基本使用

  1. 下载NuGet命令行打包工具nuget.exe
    下载地址:https://www.nuget.org/downloads
  2. 打包我们程序

方式1:通过类库文件csproj的方式打包
首先打开我们程序的AssemblyInfo.cs文件修改程序集信息在这里插入图片描述

使用nuget.exe打包程序集

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

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

在这里插入图片描述
此时会生成一个.nuspec文件,打开这个文件
修改其中的xml属性即可(注意此处一些信息最好和AssemblyInfo.cs中的程序集信息一致)在这里插入图片描述
修改完成后继续执行pack命令在这里插入图片描述
这时将生成的.nupkg文件直接copy到nuget服务器IIS目录下的packages文件夹内即可
也可通过命令push推送至nuget服务器

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

完成后即可查看或使用我们发布的程序集在这里插入图片描述
在这里插入图片描述

四、问题

  1. 在刚开始使用的时候经常因为失误或者程序有问题从而导致需要重新发布nuget包,但是发现覆盖掉原来的之后,项目里更新下来的始终还是原来的程序。
    解决:慎重慎重再慎重打包,需要重新发布包的时候可以升级,不能覆盖。(当时认为这个东西只能升级不能覆盖)
  2. 用了一段时间后,由于当时至提供了nuget管理包的技术方案,却没有相应的使用规范与制度,导致团队nuget包混乱,开发人员胡乱升级,胡乱引用nuget包,终于有一天造成大问题。因此需要制定一个完善的使用规范与制度,包括如何打包,如何发布,谁来打包,谁来发布,慎重打包、升级、专人管理等
  3. 由于问题2引起的问题,因此决定重新整理nuget包(不破不立),于是重新搭建了一个nuget服务器,重新规整虽有的程序集、组件、重新打包发布等,但是发现迁移到新的后,项目中下载下来的程序集还是原来的。(又遇到了问题1)。这次灵感一来发现问题解决方案。VS2017通过工具->选项->清除所有NuGet缓存
    再重新下载包问题即可解决
    在这里插入图片描述
    若没有VS2017或找不到清楚NuGet缓存选项,也可找到自己机器上nuget的缓存文件夹删除掉里面对应的内容也可以,一般是在C:\Users\Administrator.nuget在这里插入图片描述
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:上身试试 返回首页