设为首页 收藏本站
查看: 1215|回复: 0

[经验分享] 为 Jenkins 配置 .NET 持续集成环境

[复制链接]

尚未签到

发表于 2018-1-6 19:13:00 | 显示全部楼层 |阅读模式
  去年年底,得益于公司引入 Jenkins,让我们在持续集成方面迈出了第一步,本文不赘述如何安装 Jenkins,主要关注点在于配置 .Net 环境。另外本文是在 Windows 环境下安装的 Jenkins 进行操作。

一、安装环境
  首先我们需要先准备几个安装包,将它们安装到 Windows 上:

.NET Framework 4.6.1
https://www.microsoft.com/zh-cn/download/details.aspx?id=49982
Microsoft Build Tools 2015
https://www.microsoft.com/zh-CN/download/details.aspx?id=48159
.NET Framework 4.6.1 Developer Pack
https://www.microsoft.com/zh-CN/download/details.aspx?id=49978
NuGet x86 Commandline
https://dist.nuget.org/index.html  第一个当然是大家熟悉的 .NET Framework 运行环境了;
  第二是 MSBuild,虽然平时我们使用 Visual Studio 都是图形界面编译、发布程序,但实际上 Visual Studio 是去调用 MSBuild 来进行各种操作的,所以我们要想让 Jenkins 也能自动编译代码,也要为它准备一套 MSBuild。
  第三个包为 .NET Framework 4.6.1 开发人员包(Developer Pack),在过去称为 Targeting Pack,里面包含了一堆程序集。像是早期版本的 Visual Studio 2013,发布之时并没有 .NET Framework 4.6.1,要想让它支持就需要安装这个开发人员包。如果不安装的话,后期编译 4.6.1 的程序时会提示找不到 System.Object、System.Attribute 程序集的错误。4.6.1 的开发人员包包含了 4.0、4.5、4.6 Targeting Pack 的内容,安装 4.6.1 的包就不需要安装 4.0 其他版本的包了。另外如果需要中文支持,需要先安装英文版,再安装中文语言包。
  最后一项为 NuGet 的控制台程序,在编译程序之前,先需要使用 NuGet 进行包还原。这个软件不需要安装,放在一个固定的位置就行,例如放在 D:\Tools\CI 下。

二、安装 Jenkins 插件
  进入 Jenkins 的插件管理页面,安装 MSBuild 插件,地址为:https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin
  安装好之后,之后进入 “Global Tool Configuration” 界面:

  在打开的页面里找到“MSBuild”一栏,先点击“MSBuild 安装”,再点击“新增 MSBuild” 按钮,即可配置 MSBuild.exe 的路径。由于我使用 32 位的 MSBuild,所以可以这样配置:

  MSBuild 的默认安装路径

32位
C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
64位
C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe  配置好之后不要忘了保存。

三、Jenkins Job 配置
  准备好了运行环境和 Jenkins 插件,我们新建一个 Job 试一试。我们公司使用的是 Subversion,所以我会从 SVN 下载代码,使用 Git 等仓库也大同小异,这里就略过了。

1. 还原 NuGet 程序包
  我们需要在“构建”一栏中,新增一个“Execute Windows batch command”(执行批处理命令)步骤,用来进行 NuGet 包还原
  

D:\tools\CI\nuget.exe restore .\YourSolutionName.sln  

  首先是指定 nuget.exe 的路径,然后使用 restore 命令,对当前目录下的 YourSolutionName.sln 解决方案文件进行包还原。大家根据自己实际情况进行修改即可。

2. 配置 MSBuild 编译参数
  依然是在“构建”一栏,新建一个“Build a Visual Studio project or solution using MSBuild”(使用 MSBuild 生成 VS 项目或解决方案)步骤

  从上往下,依次是


  • 选用的 MSBuild 版本
  • 目标项目或解决方案文件的路径+文件名
  • MSBuild 参数
  这里主要讲一下“Command Line Arguments”的配置,更全面的 MSBuild 文档可以参阅 MSDN:https://msdn.microsoft.com/zh-CN/library/dd393574.aspx
  我希望生成一个 ASP.NET MVC 项目,并发布到文件系统中,主要用到:


  • /t:Rebuild 重新生成
  • /p:Configuration=Release>
  • /p:VisualStudioVersion=14.0 指定子工具集(https://msdn.microsoft.com/zh-cn/library/bb383796.aspx)版本,不设置会报错
  • /p:DeployOnBuild=True;PublishProfile=Testing-Environment-CI-publish 使用 Testing-Environment-CI-publish.pubxml 发布文件来发布项目

四、补充
[2017年1月24日09:30更新]

  不好意思,昨晚发布文章时遗漏了这一点。如果按上面的配置,使用 MSBuild 编译项目,可能会遇到这样的错误:

  未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets”

  这时候只需要找一台安装了 Visual Studio 2015 的计算机,将 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0 目录里的所有内容都拷贝到 Jenkins 所在的 Windows 系统的这个目录下,然后重新构建,就可以了。
  后面可能还会发一些有关 Jenkins 集成 xUnit.net 单元测试和自动发布方面的一些内容,不过不知道年前还能不能发出来了 XD
  希望文章能对大家有作用。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432332-1-1.html 上篇帖子: Jenkins 在声明式 pipeline 中并行执行任务 下篇帖子: Unity3d+Jenkins 自动编译iOS、Android版本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表