使用Jenkins实现.net程序自动化编译系列--包依赖管理篇
.NET项目使用NuGet管理包依赖,根据包来源不同可划分为一方库、二方库、三方库,
一方库:同一解决方案中的项目,如工具库
二方库:本公司内部编写的项目库,如本公司通信库、UI库等
三方库:其他公司或组织编写的库,如log4net、Newtonsoft、Autofac等
其中一方库属于解决方案内的源码项目引用,二方库、三方库则属于编译后的库引用,使用NuGet管理这些依赖。
对于二方库首先需要存放各个变更版本,以利于使用者选择合适的版本,这就需要搭建一个本公司内网的NugetServer服务器。
.NET项目的三方库则直接使用Nuget官网即可,Visual Studio可以直接从Nuget服务器上下载依赖库到本地。
由此可知对于Jenkins编译的.NET解决方案,首先要找出项目中的依赖项,并将这些依赖项归类到一方库、二方库、三方库中,根据不同类型做不同的处理:
一方库不做任何处理。
二方库需要搭建NugetServer服务器,并将依赖库上传至该服务器。
三方库则要求Jenkins所在机器能访问外网,依靠Visual Studio即可自动获取依赖库。
一、搭建NugetServer服务器
1、下载NugetServer服务器源码,地址:https://github.com/NuGet/NuGet.Server,下载后使用VS2019编译发布
2、配置IIS,创建名为NugetServer的Web网站,路径指向步骤1中发布文件目录,访问网站首页,如下图,则Web网站发布成功

点击here进入上传包查看界面,如下则说明上传路径访问正常,至此NuGetServer服务器已搭建好

二、打包动态库
NuGetServer服务器搭建好后,可以向该服务器上传NuGet包,首先要将动态库打包成NuGet支持的格式:.nuspec
打包方式一:使用命令行,需要下载nuget.exe,地址:https://www.nuget.org/downloads,不做详细介绍
打包方式二:使用工具NuGetPackageExplorer,地址:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer,选择合适的发布版本下载使用即可,本文使用的是v4.4.72版
将动态库打包为.nuspec格式的文件,具体步骤如下:
1、创建一个测试项目类库,名为Pot.Common,编译生成Pot.Common.dll
2、打开NuGetPackageExplorer,选择File->New,打开一个包信息编辑操作界面,左侧面板为包的基本信息,右侧面板为包内容,在右侧面板邮件,选择AddLibFolder,会创建一个lib目录

3、在lib目录上选择Add .NET folder,选择合适的.net版本号,便于区分版本信息,这里选择v4.0

4、在创建好的net40目录上右键,选择Add Existing File,找到Pot.Common.dll添加

5、右侧面板创建好的打包目录结构,左侧面板根据实际需要编辑动态库Id,版本号,作者,描述等,编辑好后点击左上角的绿色对号按钮

6、发布包,选择File->Publish,在弹出的发布包窗口中,填写NugetServer地址,apiKey

7、发布,点击Publish,成功发布后如下,

8、查看NugetServer,可以看到已上传的包,至此动态库正确打包为.nuspec格式并成功上传

三、配置VS程序包源,设置为自建的NuGetServer服务器
1、在VS中配置内网NugetServer地址,打开VS,选择工具->NuGet包管理器->程序包管理器设置

2、选择程序包源选项,点击新增按钮,并做如下配置,至此完成VS中新增程序包源来自搭建的NugetServer服务器

四、在项目中使用Nuget包
1、在VS中,选择工具->NuGet包管理器->管理解决方案的NuGet程序包

2、在管理解决方案包窗口,注意选择程序包源,点击浏览Tab选项会看到之前发布的Pot.Common包,选择安装到指定项目即可,安装成功后在项目即可看到Pot.Common的引用,至此实现项目中使用NuGet包

浙公网安备 33010602011771号