Jenkins结合.net平台工具之Nuget

咱们刚刚经过msbuild在Jenkins环境下把一个控制台项目生成exe可执行文件,若是咱们引用了nuget包,也可以正常生成,可是咱们知道,咱们在把项目提交到git或者svn上的时候并不包含这些包,咱们把项目从git上拉到下来后用vs打开,vs会首先来还原这些nuget包,一样,若是咱们是使用msbuild.exe来构建这些项目,也须要首先还原nuget包,不然项目因为缺乏依赖而没法正常编译,下面咱们就介绍如何使用nuget.exe来还原项目依赖. git

产生咱们在项目中添加对Newtonsoft的引用,而后控制台改为如下语句 github

而后咱们作一次提交,把它提交到github上,提交之后删除本地项目,而后再从github上拉取.这样下载下来的默认是没有Newtonsoft包的(由于咱们提交的时候默认忽略) json

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

能够看到都是关于Newtonsoft的错误,正如咱们所料,因为缺乏依赖没法正确编译项目. svn

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

咱们建立一个freestyle 项目,命名为BuildWithNuget rest

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

首先咱们先要找到nuget.exe所在位置(能够经过windows搜索或者everything搜索),而后 添加restore命令 restore后面跟的是要返原的项目的sln文件或者csproj文件. blog

配置完成后咱们点击保存,而后执行Build Now get

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

 

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

点击保存,执行build now

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

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