最近在学习 Jenkins,为公司的持续集成迈出第一步。初步设想是所有在研项目都接入到持续集成环境中,目前正在往这个方向努力中。
Jenkins 的安装部署等,不在本文的范畴,社区有大量相关文章作为参考。
.NET 的构建需要上述的几个环境,前三个环境根据提示安装即可,最后一个是不用安装的,放在一个目录下即可。
打开 Jenkins 系统管理,找到管理插件选项,点击进入,切换到可选插件选项卡在搜索框输入 MSBuild 搜索。在搜索结果中找到 MSBuild 插件并安装。
打开 Jenkins 系统管理,找到 Global Tool Configuration 选项,点击进入。找到 MSBuild 并配置如下
MSBuild 的一般路径是C:\Program Files (x86)\MSBuild\15.0\Bin
,图中使用的是 VS2017 中的 MSBuild。
此项目是多项目依赖,主项目有依赖一个公共类库(单独项目)
选择 Multiple SCMs 的原因:
1. 项目中存在依赖的情况,单纯的一个 Git 仓库地址是不能搞定的。
2. 如果项目是单一项目,可以直接选择 Git 配置。
3. 如果是多项目依赖的情况需要安装Multiple SCMs插件。
此处设置为检测到更新就自动拉取代码并编译项目
日程表用法自行百度
构建
新建一个批处理命令Execute Windows batch command
,首先指定NuGet
路径,restore
命令是还原程序包(依赖)的意思,最后指定需要还原的sln
解决方案。
新建一个Build a Visual Studio project or solution using MSBuild
,首先选择MSBuild
版本,再次输入sln
的名称,一般在项目的根目录,如果不是需要指定其路径,最后填写编译参数。
构建项目
保存项目后,回到项目页面,点击立即构建,可以看到项目正在构建中。点击这个正在构建的任务查看控制台输出,可以看到项目最终是构建成功了。
由于第一次接触.NET 项目,在构建过程中遇到各种问题,有环境问题,有其他问题,下面记录下遇到的主要问题以及解决方案,供大家参考。
这是因为项目中采用了 C# 6.0 的新特性,编译工具的版本太老导致的
我们只要升级 MSBuild 即可,第一次安装的是Microsoft Build Tools 2013
,改完安装Microsoft Build Tools 2015
Microsoft.WebApplication.targets
文件这个忘记是怎么解决的了,大概还是因为 MSBuild 的版本问题还是没有安装Microsoft Build Tools
导致的
起初是根据错误提示,找到相应的文件并打开,查看它引用的目录在哪,然后从开发那里(开发那边能编译通过)拷贝对应的文件过来,最后是编译通过了。但还是觉得很麻烦,万一依赖升级了或者有其他变动呢,难道没有像安卓一样有gradle
这种工具,自动下载依赖?
后来了解到可以通过NuGet
来完成,所以问题也都解决了。