一个大的项目一般都会进行模块化、层次化分隔,每个模块、每个层次都可能是一个或多个工程文件组成,而且各个模块都有依赖关系,有先后顺序,先build哪个然后再build哪个都是有顺序的,如果想build一个项目来发布那可能要打开多个工程文件一个一个的build,每次发布新的都要重复前面的操作,而且还会在发布的时候由于版本问题出现错误。比如A迁入代码build一个versionA,B迁入代码build一个VersionB,加入VersionB的是最新的代码,但人工部署时如果不注意可能会部署成VersionA的代码,导致B的代码并没被包含。这样交给测试的话一旦测出问题,就还要重新build,这是很麻烦的事情。那有没有解决它的方法呢?答案当然是有了,Jenkins就是用来做持续集成的。

Jenkins是一开源的持续集成工具,可以集成多种语言C#,Java,python等都可以,也可以定制开发,想把它玩精通了不容易,有的公司甚至直接设立一个项目组来负责持续集成工作。使用Jenkins可以解决上面的问题。Jenkins有插件来进行版本控制,根据版本更新来自动进行build,前期一旦定义好以后发布部署的话就会非常方便,可以一键部署或者自动化部署。不过这些高大上的东西也不是一时半会都能上手的,每一个知识点如果想深入了解的话可能都需要很多的时间。这里我先抛个砖,演示一个简单的,使用Jenkins进行应用程序的发布。

一、安装插件

使用Jenkins发布.Net程序时需要安装MSBuild Plugin插件。

在Jenkins系统管理——>插件管理中查找MSBuild,然后安装。下图是已经安装好了MSBuild Plugin.

二、创建Jenkins Job

点击新建,创建Project,选择构建一个自由风格的软件项目,这里我创建的是CYWJenkins project。

三、配置

1.MSBuild 配置

系统管理——>Global Tool Configuration,选择新增MSBuild.

2.Jenkins Job的配置

上面创建了CYWJenkins,点击OK之后就会进入配置页面,在配置页面主要有下面的几个大类的配置。

Jenkins通过版本控制来进行构建,而且可以设置在什么情况下构建,即构建触发器,如何构建,以及构建后的操作,构建的上下游设置。这里的例子非常简单就是在本地通过MSBuild来发布MVC的应用程序。

上面红线标出的部分,MSBuild Build File:要构建的项目,这个我事先已经创建好了MVC的工程CYWJenkinsDemo  Command Line Arguments:构建的参数。

/t:Rebuild 表示每次都重建,不使用增量编译
/property:Configuration=Release 表示编译Release版本,
PublishProfile指定创建的Profile名称(没有扩展名),VS发布项目时的配置文件名称
DeployOnBuild=true 表示启用编译并发布
TargetFrameworkVersion=v4.5表示.net Framework的版本

其中PublishProfile这个文件是怎么来的呢?如何创建它呢?

我们可以选择工程CYWJenkinsDemo ,右键发布,然后创建Profile,这里要注意不用点发布,一直下一页,然后点击关闭,会提示要不要保存配置文件,点击保持就OK了,几下名字,就是上面的JenkinsPublishProfile。

四、执行

其实都可以不用手动执行,可以配置触发器,是版本更新时执行还是固定的周期执行,这里就先弄简单的,手动触发执行。点击立即构建,就能将应用发布出来,以后再次构建的化也不用再打开工程然后发布了,直接打开页面点击构建就可以了。这些应该来说都是通过远程服务器来搞定的。对于执行的成不成功呢,可以查看build history

对于执行失败的可以点进去查看具体的log,根据log分析具体原因。这里还可以通过另外的插件来发送邮件通知管理员是否部署成功。

Jenkins发布MVC应用程序的更多相关文章

  1. IIS发布MVC应用程序问题

    1.IIS7.5详细错误 HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效 重复定义了“system.web.extensi ...

  2. IIS发布mvc程序遇到的HTTP错误 403.14-Forbidden解决办法

    在IIS上发布MVC应用程序后,在浏览器查看时会报如下图的错误: 这时,我们首先检查一下“处理程序映射”,看一下里面是否有“ExtensionlessUrlHandler-Integrated-4.0 ...

  3. 3.怎样将ASP.NET MVC应用程序发布到IIS

    这一篇,教大家怎么将ASP.NET MVC应用程序发布到本地或者IIS中.打开上一篇创建的ASP.NET MVC 5.0应用程序.[PS:上一篇--->2.第一个ASP.NET MVC 5.0应 ...

  4. jenkins发布程序触发shell调用python脚本刷新akamai cdn api

    刷新cdn的流程:jenkins获取git中的代码,触发脚本推送到生产环境中(即cdn的源站) --> 触发脚本获取git工作目录的更新列表,将更新列表拼凑成带域名信息的url,写入到目录中 - ...

  5. [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序更新相关数据

    这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第八篇:为ASP.NET MVC应用程序 ...

  6. iis7 发布mvc 遇到的HTTP错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容

    iis 7上发布mvc报错:403.14-Forbidden Web 服务器被配置为不列出此目录的内容 提示里面的解决方法是: 如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在. 使用 II ...

  7. ASP.NET MVC应用程序更新相关数据

    为ASP.NET MVC应用程序更新相关数据 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译, ...

  8. MVC应用程序实现文件库(FlexPaper)

    MVC应用程序实现文件库(FlexPaper) 很久之前Insus.NET在实现了<FlexPaper实现文档在线浏览>http://www.cnblogs.com/insus/archi ...

  9. 使用Razor Generator构建模块化ASP.NET MVC应用程序

    在构建Web应用程序的时候,我们很难做到模块化的开发,这是因为Web应用程序不仅仅包含编译的C#代码,还包含了js.css和aspx等资源. 在ASP.NET MVC中,我们发布应用程序的时候,还会包 ...

随机推荐

  1. ajax、PHP、session做购物车

    购物车网页代码 1.登录界面login.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  2. An abandoned sentiment from past

    An abandoned sentiment from past time limit per test 1 second memory limit per test 256 megabytes in ...

  3. Java 基础 变量介绍

    变量的声明和使用 概念: 变量是指内存中的一个存储区域,该区域要有自己的名称(变量名).类型(数据类型),该区域的数据可以在同一数据类型的范围内不断变化值: 变量的使用注意事项: Java中的变量必须 ...

  4. [Unity] A* pathfinding project integrated with influence map

    简介 最近一阶段重温了一些关于游戏人工智能方面的书籍. 加强了对influence map的认知.想要亲自动手实现一下. 正如文章标题所示,这篇文章讲的是:如何将influence map的机制融入到 ...

  5. Selenium chrome配置代理Python版

    环境: windows 7 + Python 3.5.2 + Selenium 3.4.2 + Chrome Driver 2.29 + Chrome 58.0.3029.110 (64-bit) S ...

  6. 设备像素比dpr介绍

    首先介绍一下概念 devicePixelRatio其实指的是window.devicePixelRatio window.devicePixelRatio是设备上物理像素和设备独立像素(device- ...

  7. 【原】Sql Server 2008---安装时卸载Visual Studio

    由于数据库连接不上,所以卸载数据库,然后安装的时候出问题报错,结果是因为vs, 所以就有了卸载vs这一步.某些图片借用一下. 1. 打开电脑中的控制面板--程序和功能 2.找到要卸载的软件,但是卸载过 ...

  8. Ubantu 16.4 samba安装配置

    本文总结了Ubantu 16.04 环境下的samba安装.配置及使用.本文为原创,也是我的第一篇博客,以后会经常写博客,记录自己的学习.总结及研究,让博客见证着我成长的轨迹. 下文中的所有命令均使用 ...

  9. js加强版图片轮播

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 最近快速的过了一遍php基础语法

    把in_array() 写成is_array() ;结果自己坑了自己一万:打脸一万下,先记账上