• Jenkins结合.net平台之Web项目编译


    前面我们讲解了如何使用msbuild.exe编译一个.net程序.示例中我们讲解的是编译控制台项目,但是我们知道web项目不仅需要编译类的嵌入的资源文件,还要拷贝诸如css,html,js,图片等资源文件,比较旧的msbuild版本如果不对web项目作特殊处理则是不能复制这些资源文件的.

    下面我们讲一下如何通过参数设置使得msbuild编译的web项目在编译时复制资源.

    首先我们打开visual studio建立一个.net mvc项目.命名为GitTest.相信大家对新建普通mvc项目非常熟悉了,这里就不再截图,我们就使用默认板,不进行任何修改.

    然后我们建立一个buildWebProj.bat批处理文件,内容如下:

    "C:Program Files (x86)Microsoft Visual Studio2017EnterpriseMSBuild15.0BinMSBuild.exe" "E:personal project etdevopsProjectsGitTestGitTest.sln" /t:ResolveReferences;Compile /t:_CopyWebApplication /p:Configuration=Release /p:WebProjectOutputDir="E:personal project etdevopsProjectsGitTestGitTestinRelease" /p:OutputPath="E:personal project etdevopsProjectsGitTestGitTestin"

    期中第一个空格前面部分是msbuild.exe文件所在位置.后面跟的是要进行编译的项目的名称.后面的是关于web项目编译的参数,这里参考了不少内容,大家在编译web项目时只要复制上面代码把msbuild.exe所在目录和项目sln文件所在目录替换下即可.

    然后在Jenkins中新建一个项目,在build栏里面添加一个windows batch command步骤,然后在命令框里把bat文件完整路径写上执行build now.如果配置没有错误则会生成一条构建成功记录.构建成功后,我们打开项目bin目录下的release文件夹,会看到生成的内容大致如下结构

    可以看到Content,fonts,Scripts都复制到了这个目录下面.

    我们把这些内容复制到iis预先建好的目录下面,然后打开浏览器会看到如下网页

    然后你可能会想,之前的步骤都是自动完成的,为什么这里手动复制到iis目录下面呢,能不能编译完成后自动把这个目录复制到iis下指定的目录.呢,答案是肯定的,我们会在后面章节讲解如何搭建ftp服务器来实现把编译完成的内容发布到测试服务器.

  • 相关阅读:
    document.form.action一个页面多个action,表单分向提交
    jdk多个版本切换
    (已解决)No result defined for action and result input
    struts2中action中的void方法
    时间格式yy-MM-dd HH:mm:ss
    Spring在Action中不用注入实体类
    css背景色的线性渐变
    ElasticSearch入门
    Git命令进阶
    websocket入门代码
  • 原文地址:https://www.cnblogs.com/tylerzhou/p/9076840.html
Copyright © 2020-2023  润新知