人永远追求效率(想偷懒),不想手动编译项目、发布站点于是产生了自动构建技术,.NET领域中CCNET是个不错的选择。
一路问题不少,记录一下。

  1. 准备环境
    1. 服务器上需要有iis、vs(与开发环境的版本一致)。
    2. 安装svn,如果是TortoiseSVN,安装时记得选择安装命令行。
    3. 安装CCNET,下载地址:http://build.nauck-it.de/download/CruiseControl.NET-package/1.8.5.0/
    4. 可能出现的问题:
      1. 没有自动在iis上创建站点。我安装时也出现这个问题,原因是文件访问权限不够,没有仔细看是要哪个用户,直接把C:\Program Files (x86)\CruiseControl.NET这个目录给了everyone读写权限,问题解决。然后手动创建站点,站点物理路径:C:\Program Files (x86)\CruiseControl.NET\webdashboard。
      2. 站点未正常运行。访问刚刚创建的站点有可能出现这样的错误:由于目标计算机积极拒绝,无法连接,127.0.0.1:21234。如果按上面的步骤给了足够的权限仍出现这样的问题,那只能是因为没有启动CruiseControl.NET,运行起来吧!
  2. 配置
    1. 配置文件在C:\Program Files (x86)\CruiseControl.NET\server\ccnet.config
    2. 配置说明:
       <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
      <!--定义项目-->
      <project name="MentenApi">
      <artifactDirectory>D:\xx\xx</artifactDirectory><!--对应的日志会写到这里-->
      <!--配置代码源,这里用的是svn-->
      <sourcecontrol type="svn">
      <executable>C:\Program Files\TortoiseSVN\bin\svn.exe</executable><!--svn的位置,安装TortoiseSVN时记得选择安装命令行-->
      <username>test</username><!--svn用户名-->
      <password>123456</password><!--svn密码-->
      <autoGetSource>true</autoGetSource>
      <trunkUrl>https://x.x.x.x/xx</trunkUrl><!--源代码位置-->
      <workingDirectory>D:\xx\xx</workingDirectory><!--获取代码的存放位置-->
      </sourcecontrol>
      <!--触发器-->
      <triggers>
      <intervalTrigger seconds="300" />
      </triggers>
      <!--要执行的任务-->
      <tasks>
      <!--编译-->
      <msbuild>
      <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable><!--MSBuild的位置(视.NET的版而定)-->
      <buildArgs>/p:OutputPath=D:\xx\x1</buildArgs><!--给MSBuild指定参数,这里指定的编译后的输出目录-->
      <workingDirectory>D:\xx\xx</workingDirectory><!--通过svn获取下来的代码位置,与上面sourcecontrol\workingDirectory的值一致-->
      <projectFile>xx.sln</projectFile><!--指定解决方案文件-->
      <targets>Build</targets>
      <timeout>600</timeout><!--编译超时时间,单位秒-->
      </msbuild>
      </tasks>
      </project>
      </cruisecontrol>

      配置

    3. 为了验证自己的配置文件写的对不对,可以使用C:\Program Files (x86)\CruiseControl.NET\server\CCValidator.exe检查。
  3. 看效果
    1. 访问ccnet站点,如果一切正常的话,上面会显示刚刚配置的项目。可以在这里直接手动启动编译。
    2. 当然,事情不会那么简单,不出意外的话,Force后会告诉你编译失败,具体的原因可以点击左侧链接查看。                                                                                                                                                                   
    3. 可能出现的问题:
      1. 系统找不到指定的文件。这个时候需要确认是否正确安装了svn、vs。
      2. 编译不通过。可能是使用了NuGet管理dll,需要下载缺少的dll,或者是服务器上没有对应的MVC环境,安装下就好。
  4. 最后
    1. 一切正常后,可以在编译后的输出目录中找到编译后的文件,同时这个目录下的_PublishedWebsites文件夹也会产生编译好的站点了。

CCNET自动构建之路的更多相关文章

  1. 小伙伴想学Jenkins自动构建发布项目,我:安排上了!!

    写在前面 趁着十一长假,很多小伙伴都在悄悄学习,有些是为了能够顺利通过面试,进入大厂升职加薪.有些则是为了进一步巩固和提高自己的专业技能,希望有朝一日能过成为互联网架构师乃至技术专家.这不,就有小伙伴 ...

  2. 使用cmake自动构建工程

    公司引擎是用cmake根据目标平台来构建工程的,刚接触的时候深深体会到cmake的方便:如果目标平台是windows,它可以帮你自动构建出vs工程:如果是安卓,自动构建出eclipse工程,如果是IO ...

  3. 使用Hudson搭建自动构建服务器

    环境: ubuntu1404_x64 说明: 使用hudson和git搭建自动构建服务器的简单示例 安装hudson及相关插件 安装hudson 安装命令如下: sudo sh -c "ec ...

  4. Windows Server配置Jenkins,实现监测SVN提交自动构建.net4.5的项目

    1,持续集成 概念:http://baike.baidu.com/view/5253255.htm,对于大多数人而言,自动构建/自动测试/自动部署,已经很发挥它的价值了.选择上: 推荐jenkins, ...

  5. 关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用

    关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用   工作环境:window下 在一切的最开始,安装node.js (中文站,更新比较慢http://nodejs.cn/) ...

  6. 用Ant实现Java项目的自动构建和部署

    原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml         本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...

  7. 利用ant脚本 自动构建svn增量/全量 系统程序升级包

    首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...

  8. Yeoman自动构建js项目

    Aug 19, 2013 Tags: bowergruntJavascriptjsnodejsyeomanyo Comments: 10 Comments Yeoman自动构建js项目 从零开始nod ...

  9. 自动构建Makefile(1)--C/C++编译流程&Makefile规则简介

      前言: 大家在Windows上使用VS构建C/C++程序时,不需要自己编辑略显晦涩的Makefile文件,而对于初学者而言, 他们甚至没意识到它的存在.VS是自动生成Makefile文件, 并构建 ...

随机推荐

  1. Hadoop HDFS 中的一些常用命令

    转载自:hadoop HDFS常用文件操作命令 命令基本格式: hadoop fs -cmd < args > 1.ls hadoop fs -ls / 列出hdfs文件系统根目录下的目录 ...

  2. css的部分应用示例

    CSS :层叠样式表,Cascading Style Sheets.CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化. 1 vertical-align 在图片与文字对 ...

  3. spoj 7001 Visible Lattice Points莫比乌斯反演

    Visible Lattice Points Time Limit:7000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Su ...

  4. 【CF666B】World Tour(贪心,最短路)

    题意:给你一张有向图,叫你给出四个点的序列a,b,c,d,使得这四个点依次间的最短路之和最大.(4 ≤ n ≤ 3000, 3 ≤ m ≤ 5000) 思路:O(n4)可用来对拍 我们需要O(n2)级 ...

  5. 【CF675E】Trains and Statistic(贪心,DP,线段树优化)

    题意:a[i]表示从第i个车站可以一张票到第[i+1,a[i]]这些车站;p[i][j]表示从第i个车站到第j个车站的最少的票数,现在要求∑dp[i][j](1<=i<=n,i<j& ...

  6. 第一次用写一个3d轮播

    2016-07-11gallery  3d html <!doctype html><html lang="en"><head> <met ...

  7. web实时长图实践--摘抄

    背景简介 全民K歌专辑发布新玩法,传统宣传专辑战绩的流程,从获取数据,到制作海报,到传播,周期长运营成本高,如何快速分享战绩进行荣誉感的传播成为一个亟待解决的问题. 产品:能不能在专辑大事件触发时,自 ...

  8. linux shmget shmctl

    shmgetint shmget(key_t key, size_t size, int flag);key: 标识符的规则size:共享存储段的字节数flag:读写的权限返回值:成功返回共享存储的i ...

  9. XSD(XML Schema Definition)学习笔记

    今天学习了XSD相关的知识,为了以后查找的方便,写一些笔记. 一.什么是XSD? 1.XSD全称:XML Schema Definition.XML Schema 的作用是定义 XML 文档的合法构建 ...

  10. LeetCode OJ——Remove Duplicates from Sorted List

    http://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/ 链表的去重,要考虑链表的本质. #include <ios ...