Jenkins结合.net平台工具之Nuget

Posted tylerzhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins结合.net平台工具之Nuget相关的知识,希望对你有一定的参考价值。

我们刚刚通过msbuild在Jenkins环境下把一个控制台项目生成exe可执行文件,如果我们引用了nuget包,也能够正常生成,但是我们知道,我们在把项目提交到git或者svn上的时候并不包含这些包,我们把项目从git上拉到下来后用vs打开,vs会首先来还原这些nuget包,同样,如果我们是使用msbuild.exe来构建这些项目,也需要首先还原nuget包,否则项目由于缺少依赖而无法正常编译,下面我们就介绍如何使用nuget.exe来还原项目依赖.

产生我们在项目中添加对Newtonsoft的引用,然后控制台改成以下语句

技术分享图片

然后我们做一次提交,把它提交到github上,提交以后删除本地项目,然后再从github上拉取.这样下载下来的默认是没有Newtonsoft包的(因为我们提交的时候默认忽略)

此时我们再将执行上一篇中的构建命令,将会出现构建错误,console output输出如下

技术分享图片

可以看到都是关于Newtonsoft的错误,正如我们所料,由于缺少依赖无法正确编译项目.

下面我们新建一个项目一个项目,用nuget.exe来执行还原,然后再使用msbuild.exe来执行编译.

我们创建一个freestyle 项目,命名为BuildWithNuget

在Add Build Step里添加一个Execute windowsbatch command

技术分享图片

首先我们先要找到nuget.exe所在位置(可以通过windows搜索或者everything搜索),然后 添加restore命令 restore后面跟的是要返原的项目的sln文件或者csproj文件.

配置完成后我们点击保存,然后执行Build Now

如果配置没问题,将会生成一条执行成功记录,点击记录查看console output,内容如下

技术分享图片

 

可以看到Newtonsoft.json.11.0.2已经添加到指定目录.我们修改项目,再点击Add Build step在还原nuget包下面再添加一个构建步骤,仍然选择Execute windows batch command

技术分享图片

点击保存,执行build now

如果配置正确,则会生成一条成功记录,查看这条构建记录的console output,内容如下

技术分享图片

我们进入bin目录下的myrelease目录(项目指定生成在myrelease目录下),此时可以看到项目已正确生成.我们点击consoletest.exe,可以看到对象已被序列华输出

技术分享图片

以上是关于Jenkins结合.net平台工具之Nuget的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins结合.net平台工具之ReportGenerator

Jenkins结合.net平台工具之Nuget

Jenkins 持续集成平台构建之通过git提交代码

持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知

Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD

jenkins结合gitlable企业集成部署实战