环境:Windows 2008 R2、Jenkins2.235.1、Visual Studio 2017;

概要

  前面写过一篇文章,《自动发布-asp.net自动发布、IIS站点自动发布(集成SLB、配置管理、Jenkins)》,这个主要是用于投产环境运维平台自动发布的集成,对于前面的环节使用Jenkins构建包,并发布到测试环境并没有详细的说明,现在发文记录一下。

  分成两篇来写《Jenkins持续集成(上)-Windows下安装Jenkins》、《Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布》。

正文

一、配置MSBuild与FTP;

  1、MSBuild:先在服务器上面安装Visual Studio 2017或更高版本,也可以单独安装MSBuild,不过为了方便调试,最好是直接安装VS。

    然后在Jenkins上面配置,打开“Manage Jenkins”-->“Global Tool Configuration”-->“MSBuild”,指定安装的MSBuild目录;

    

  2、FTP:在服务器上面安装FTP功能,然后在IIS上新建FTP站点(注意点:a、用户名注意不要用ftp,使用ftpuser这类,使用标准用户,不使用管理员;b、SSL认证 选择无;c、FTP身份验证 选择基本身份验证;d、FTP授权规则 选择指定用户,如:ftpuser)。

    然后在Jenkins上面配置,打开“Manage Jenkins”-->“Configure System”-->“Publish over FTP”,配置主机名,端口默认为21,可以点击“Test Configuration”进行测试;

    

二、配置全局参数;

  为了快速配置任务,以及统一修改,建议任务构建里面的变量全部采用参数化来控制,涉及到统一的用全局参数来控制,如:SVN地址;

  在Jenkins上面配置,打开“Manage Jenkins”-->“Configure System”-->“全局属性”,勾选“Environment variables”,输入键值,键名称就是参数名;

  

三、配置Asp.net构建任务

  “新建Item“,输入任务名称,选择”流水线“或叫”工作流“任务,

  1、指定最大保留历史构建版本;

  

  2、指定任务自定义的工作空间,不指定则全部默认为系统统一路径,如果任务数太多并且没有做集群的情况下,建议把任务的工作空间分散在多个磁盘上,需要注意自定义工作空间的路径,不要跟系统的安装路径一样,否则可能安装目录下面的文件被删掉。

  

  3、配置SVN分支选择下拉;

  

  

  效果如下:  

  

  4、配置源代码路径:

  

  5、配置MSBuild构建参数:
    /t:Rebuild
    /p:VisualStudioVersion=15.0
    /p:DeployOnBuild=true
    /p:LastUsedBuildConfiguration=Debug
    /p:LastUsedPlatform="Any CPU"
    /p:WebPublishMethod=FileSystem
    /p:LaunchSiteAfterPublish=True
    /p:ExcludeApp_Data=False
    /p:DeleteExistingFiles=True
    /p:WPPAllFilesInSingleFolder=${WORKSPACE}\build\build_test1_A_10001

    注意:p:WPPAllFilesInSingleFolder,表示把文件生成到指定文件夹,为了后面能够利用FTP把文件传过去,这里必须为工作空间下面的路径,如:D:\JenkinsWorkspaceAB\test1_A_10001_test_OrderProcessAPI\default\default;  

  

  6、把文件夹进行压缩,以便FTP进行传输;

    

  7、配置FTP传输;

  

  8、解压文件夹,切换IIS目录,重启站点、浏览测试页;

    这几步我是通过自己写了一个接口给Jenkins去调用实现,好像还有一些现成的工具可以用,不过感觉这个自己写比较灵活,可以自由定制;

  

  9、构建后归档:

  

Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布的更多相关文章

  1. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  2. .NET 半天搭建Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  3. Jenkins持续集成01—Jenkins服务搭建和部署

    一.介绍Jenkins 1.Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Je ...

  4. Jenkins持续集成-自动化部署脚本的实现

    要实现Jenkins端的持续集成,其实在CI服务配置端很容易,难点呢?就是如何实现自动化的部署.我的脚本设计就是为了解决以下难题: 难点一.如何使得自动化部署脚本更通用 我用的脚本,依赖依赖一个配置文 ...

  5. 《转载》Jenkins持续集成-自动化部署脚本的实现《python》

    本文转载自慕课网 读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续 ...

  6. linux环境下搭建Jenkins持续集成(Jenkins+git+shell+maven+tomact)

    准备环境 jenkins.war包 ,jdk1.8  ,tomact , maven,git 1.Jenkins  war包,下载地址https://jenkins.io/zh/download/  ...

  7. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(四):发布与回滚

    写在前面 我们以前windows跑.net Framework程序的时候,发布,自己乖乖的替换程序:备份,也是自己一个一个的重命名备份:回滚,发布遇到问题的回滚更是不用说了:运维很是怕我们 这些用wi ...

  8. git+jenkins持续集成二-jenkins定时构建语法:定时构建语法

    构建位置:选择或创建工程_设置_构建触发器 1. 定时构建语法:* * * * * (五颗星,多个时间点,中间用逗号隔开)第一个*表示分钟,取值0~59第二个*表示小时,取值0~23第三个*表示一个月 ...

  9. jenkins持续集成:jenkins+SVN

    实现jenkins从svn拉取最新的代码,再执行驱动脚本进行自动化测试 新建一个任务 输入任务名,选“构建一个自由风格的软件项目”,点左下角“确定” 丢弃旧的构建,如下设置为保留3天内的10条构建记录 ...

随机推荐

  1. c++运行程序 鼠标点击按钮 (c++)(windows)

    简介 这是在黑漆漆的程序中,制造用户可点击的按钮,来决定程序下一步该作什么,的基本代码. 详解 头文件 <cstdio>和<windows.h> 结构体 //这不全别复制 st ...

  2. Ant-Design-Vue中关于Form组件的使用

    1.创建form表单的两种方式,不同的方式在js中创建表单的方式也不同 方式1:一般使用在搜索表单中,只需要双向绑定数据即可,那就使用这种方法即可 <template> <a-for ...

  3. OSCP Learning Notes - Buffer Overflows(2)

    Finding the Offset 1. Use the Metasploite pattern_create.rb tool to create 5900 characters. /usr/sha ...

  4. Flarum 的安装与配置

    Flarum 是一款非常棒的开源论坛程序,本鸽子的论坛 就是用 Flarum 搭建的.之前有人问过我 Flarum 如何搭建,所以下面讲一下 Flarum 的搭建过程. 前提 域名需要提前解析. 有一 ...

  5. Spring事务源码分析专题(一)JdbcTemplate使用及源码分析

    Spring中的数据访问,JdbcTemplate使用及源码分析 前言 本系列文章为事务专栏分析文章,整个事务分析专题将按下面这张图完成 对源码分析前,我希望先介绍一下Spring中数据访问的相关内容 ...

  6. Android 性能优化---布局优化

    Android 性能优化---布局优化 Android 布局绘制原理 布局加载过程 setContentView() --> inflate() -- > getLayout()(I/O操 ...

  7. html头文件设置常用之<meta>设置

    也许很多开发人员并没有重视meta标签,我就是其中一个,但是meta标签的功能很强大,下面就来说说meta标签! <meta http-equiv="pragma" cont ...

  8. Raid0,1,5,10,50

    raid0 就是把多个硬盘合并成1个逻辑盘使用,数据读写时对各硬盘同时操作,不同硬盘写入不同数据,速度快. **最少需要2块硬盘 raid1 同时对2个硬盘读写(同样的数据).强调数据的安全性.损坏一 ...

  9. Java 继承与抽象类

    一.继承 1.概念 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法. 2.继承的格式&使用 ...

  10. python工业互联网应用实战3—模型层构建

    本章开始我们正式进入到实战项目开发过程,如何从需求分析获得的实体数据转到模型设计中来,变成Django项目中得模型层.当然,第一步还是在VS2019 IDE环境重创建一个工程项目,本文我们把工程名称命 ...