前面我们讲解了关于Jenkins的一些基本知识,通过这些知识我们可以结合一些其它工具实现更为复杂的任务,本篇我们将介绍如何使用msbuild工具结合Jenkins实现构建一个.net控制台框.

首先我们打开visual studio创建一个控制台程序,叫作ConsoleBuildTest,如下图示

 

此时,打开windows cmd输入msbuild,如果会出现如下类似界面

则cmd可以正确找到cmd命令.如果报错,则将以下路径添加到环境变量的path里:

Microsoft.NET\Framework\v4.0.30319

这时候再在cmd里输入msbuild看看能否找到msbuild,如果仍然不行,则你需要显式地指定msbuild.exe所在位置.

如果msbuild命令可以正常工具,我们则打开jenkins创建一个名为ConsoleBuildTest的freestyle项目

Add Build step里选择execute windows batch command,在弹出的命令框里输入命令

其中引号里面的为要构建的项目的路径,读者创建项目所在的目录可能和我的不一样,只需要指定该项目的sln或者csproj文件即可.

这里我并没有直接使用msbuild命令,而是显式的指定msbuild文件所在的路径,这是因为我的系统装了mono,总是导致msbuild无法正确找到csc.exe文件位置,因此显式指定.当然如果小伙伴们没有装vs 2017或者版本跟我的不一样,则不能在相同的路径下找到msbuild.exe,如果你不知道msbuild.exe在什么位置,推荐你搜索everything然后下载everything,在everything里输入msbuild.exe,则everything会列出所有msbuild,.exe所在的位置

 

创建完成任务,我们点击build now按钮,如果配置没有错误,则生成一条构建记录.

点击构建记录进入详情页,然后点击console output,你将会看到如下图示控制台输入内容

此时你打开项目目录下的bin/debug目录将会看到已经构建好的内容.

点击consoleTest.exe,将会出现以下窗口

可以看到控制台程序正常运行并输入helloworld.

这时候如果你手动按下了f5或者在visual studio里点击了生成,你就会纳闷,这项目是Jenkins生成的呢还是visual studio生成的呢,为了消除疑惑,我们更改msbuild参数指定生成目录(默认生成在bind\debug目录下)

我们点击左侧的configure进入项目编辑模式,我们把命令内容更改为如下

 

和上一次的不同之所在于我们指定了outdir为bin\mydebug(不需要手动创建mydebug目录,msbuild生成的时候如果不存在会自动创建)

我们再次点击Save保存项目.然后再次点击Build Now.

如果没有错误,则会有一个成功的生成记录.打开项目下的bin目录你将会看到一个MyDebug目录

注意这里的第一个坑,虽然上面的代码比较乱,但是也不要使用回车来分行让它显得更整洁,否则生成时可能报错.

从前面的不指定构建目录默认生成在debug目录下可以看到,如果不指定生成模式,则默认生成debug项目,但是正式环境我们是要生成realease的,如何指定realease模式呢,

继续修改项目,把配置设成如下

 

如果生成成功,则会有一条成功记录,console output如下

打开目录下的bin目录,你会看到多了一个MyRealese文件夹,正是我们刚才指定的

Jenkins结合.net平台工具之Msbuild的更多相关文章

  1. Jenkins结合.net平台工具之Opencover

    首先先介绍一下Opencover是什么,Opencover是.net平台下用于生成单元测试覆盖率报告的一款软件,是.net平台下为数不多的一款免费覆盖率报告工具,类似的工具还有Jetbrains的do ...

  2. Jenkins结合.net平台工具之Nunit

    有时候我们需要对从git上拉取的项目进行单元测通过以后才可以发布到测试环境,.net平台下单元测试的框架也很多例如mstest,nunit,xunit等,下面以Nunit为例讲解如何通过Jenkins ...

  3. Jenkins结合.net平台工具之ReportGenerator

    上一节我们讲解了如何使用opencover生成单元测试覆盖率报告,opencover默认生成的report为xml格式,可读性并不是特别强,如果靠阅读opencover生成的results.xml来分 ...

  4. Jenkins结合.net平台工具之Nuget

    我们刚刚通过msbuild在Jenkins环境下把一个控制台项目生成exe可执行文件,如果我们引用了nuget包,也能够正常生成,但是我们知道,我们在把项目提交到git或者svn上的时候并不包含这些包 ...

  5. Jenkins结合.net平台综合之监听git仓库并自动摘取最新代码编译

    前面章节我们讲解了Jenkins结合.net平台工具以及一些第三方工具实现项目自动还原,自动编译,自动测试和自动发布.然而实现自动化还有一个关键的步骤就是监听源码仓库变化然后从仓库拉取最新代码,然后再 ...

  6. VS平台工具集版本

    参考:http://blog.csdn.net/hillseas/article/details/47373313 VS从2010之后开始支持使用之前的版本进行编译,可以在工程属性->常规中进行 ...

  7. vs2010问题 error MSB8008: 指定的平台工具集(v110)未安装或无效

    vs2012上的项目导入到vs2010中,编译出现 >------ 已启动生成: 项目: HelloGame.win32, 配置: Debug Win32 ------ >生成启动时间为 ...

  8. 解决 vs2010问题 error MSB8008: 指定的平台工具集(v110)未安装或无效

    一次编译程序时.出现故障 >------ 已启动生成: 项目: PhotoStore, 配置: Debug Win32 ------ 1>生成启动时间为 2013-01-15 18:10: ...

  9. 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2

    基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Mas ...

随机推荐

  1. (26)A delightful way to teach kids about computers

    https://www.ted.com/talks/linda_liukas_a_delightful_way_to_teach_kids_about_computers/transcript00:1 ...

  2. temp--重庆农商行银联前置改造项目出差

    2019年度 杨伟携程订郎菲酒店 158, 单人住一晚 (3.5晚), 杨伟招行信用卡 预授权 1000. 与方程一起住 1915房    (其实前台预授权是  1000-158 = 842) 3.6 ...

  3. 20145232韩文浩《网络对抗》MSF基础应用

    MS08-067漏洞攻击 攻击机:Kali:192.168.31.132 靶机:win XP SP3(English):192.168.31.180 在VMware中设置两台虚拟机网络为NAT模式,自 ...

  4. 数独计算(C#)

    计算零到多个可能的数独结果,并打印到Console中. 调用方法 MainController mc = new MainController(); mc.Do(); 输入 数独数据 类型为int[, ...

  5. Matlib

    >>> name1=input('请输入第一个名字;') 请输入第一个名字;陈汉彬 >>> name2=input('请输入第二个名字;') 请输入第二个名字;钟宇 ...

  6. VUE最佳实践

    vuex 作为model数据请求由action来获取,页面组建级的发送action,返回promise给组建使用,如果使用周期较长需comit到mutation保存到state. 数据分模块,根据业务 ...

  7. 理解jsonp劫持漏洞

    JSONP劫持 存在漏洞的链接格式类似于以下这种: http://www.xxx.com/xxx.do?callback=info 参数名也常见有cb jsoncb call jsoncall cba ...

  8. css伪元素 ::after ::before

    我遇到的问题: div盒子标签设置了伪元素 ::after  ::before  并给这俩content内容设置了空属性,添加了背景图,发现这两个伪元素没有宽度和高度. 解决方法 给设置伪元素的盒子的 ...

  9. java基础知识-笔记整理

    1.查看已安装jdk文件路径 CMD输入java -verbose.   2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...

  10. eclipse的这几个小玩意

    scroll lock   滚动锁定 word wrap  自动换行 show console  when standard  out changes   标准输出更改时显示控制台 show cons ...