Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)

Posted Jim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)相关的知识,希望对你有一定的参考价值。

所要用到的主要插件:

MSBuild Plugin

具体操作:

1、配置MSBuild的版本

【系统管理】->【Global Tool Configuration】->【MSBuild】,点击【新增MSBuild】进行版本的添加,如下:

注意:其中Path to MSBuild为文件夹路径,代码要编译的那台机器的文件夹,如果绑定的是slave时,这个路径就代表这slave的路径

最后,点击【Save】完成保存。

注意:如果是4.6的项目,参考:http://www.cnblogs.com/EasonJim/p/6038363.html

2、新建项目进行测试

这里假设在要进行构建的机器上已经新建好项目,并放在“D:\\project\\WebApplication1”。

创建Jenkins的测试Job。

在【构建】节点增加【增加构建步骤】,选择【Build a Visual Studio project or solution using MSBuild】,如下:

 

注意:这里建议全部项目都编译csproj文件,不建议sln,sln不精确到底哪个项目有用。

输出的目录在命令行上输入。注意命令行不能换行,且最后一个分号不用写!

点击【保存】,然后测试一下效果:

成功发布。

注意:如果是编译Web项目,架设我要发布到“D:\\projectBuildOut\\WebApplication1”目录下,那么最后编译的Web工程为"D:\\projectBuildOut\\WebApplication1\\_PublishedWebsites\\WebApplication1",中间多了_PublishedWebsites文件夹。

3、配置SVN自动签出代码

在Job的配置页面上选择【源代码管理】->【Subversion】,如下:

其中【Credentials】为SVN的账号密码,如下添加:

【Local module directory】为SVN签出的目录,注意:此目录不能输入绝对路径,只能是相对路径,比如jenkins所在本机的workpase为D:\\jenkins,那么最后签出的代码就在这个目录下。

其余默认即可。

接下来是定时检测,这里直接使用每分钟检查是否有更新来进行SVN的Update:

勾选【Poll SCM】输入【* * * * *】(注意是有空格隔开的)。如果要看这些用法,点击右侧问号即可。

最后保存测试。可以手动Build,也可以直接迁入代码之后自动Build。

4、把编译后的文件通过FTP上传

安装插件【Publish Over FTP

在【系统管理】->【系统设置】->【Publish over FTP】->点击【增加】按钮,增加一个要连接的FTP:

配置基本保持默认,如果有特殊端口等设置的,可以点击【高级】进行配置。最后可以通过【Test Configuration】按钮进行测试。

在Job上【构建后操作】->【增加构建后操作步骤】->【Send build artifacts over FTP】:

 

注意:【Source files】表示的不是绝对路径,而是jenkins的workpase的路径,相当于相对路径,如果要上传整个目录包括子目录的,最后加上【\\**】;【Remove prefix】表示去除目录前缀,如果不去除,将会按照上面的目录依次创建。【Exclude files】为要排除的文件和文件夹,上面为参考。

提示:ftp上传文件时多一点使用通配符,比如要上传1uplad2016.rar文件,可以使用*upload*.rar这样的通配符,而目录后面\\**,这样代表包括子目录任何文件。

5、BAT

以上是关于Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)的主要内容,如果未能解决你的问题,请参考以下文章

怎样使用 MSBuild 自动编译和发布 NET 网站

jenkins实现项目自动部署

Jenkins+Gitlab配置Webhook实现提交自动部署

jenkins结合gitlab实现pipline的自动构建部署

msbuild怎么添加 到环境变量

Gitlab+Jenkins实现自动部署