人永远追求效率(想偷懒),不想手动编译项目、发布站点于是产生了自动构建技术,.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. 配置说明:

       1 <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
       2   <!--定义项目-->
       3   <project name="MentenApi">
       4     <artifactDirectory>D:\xx\xx</artifactDirectory><!--对应的日志会写到这里-->
       5     <!--配置代码源,这里用的是svn-->
       6     <sourcecontrol type="svn">
       7       <executable>C:\Program Files\TortoiseSVN\bin\svn.exe</executable><!--svn的位置,安装TortoiseSVN时记得选择安装命令行-->
       8       <username>test</username><!--svn用户名-->
       9       <password>123456</password><!--svn密码-->
      10       <autoGetSource>true</autoGetSource>
      11       <trunkUrl>https://x.x.x.x/xx</trunkUrl><!--源代码位置-->
      12       <workingDirectory>D:\xx\xx</workingDirectory><!--获取代码的存放位置-->
      13     </sourcecontrol>
      14     <!--触发器-->
      15     <triggers>
      16       <intervalTrigger seconds="300" />
      17     </triggers>
      18     <!--要执行的任务-->
      19     <tasks>
      20       <!--编译-->
      21       <msbuild>
      22         <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable><!--MSBuild的位置(视.NET的版而定)-->
      23         <buildArgs>/p:OutputPath=D:\xx\x1</buildArgs><!--给MSBuild指定参数,这里指定的编译后的输出目录-->
      24         <workingDirectory>D:\xx\xx</workingDirectory><!--通过svn获取下来的代码位置,与上面sourcecontrol\workingDirectory的值一致-->
      25         <projectFile>xx.sln</projectFile><!--指定解决方案文件-->
      26         <targets>Build</targets>
      27         <timeout>600</timeout><!--编译超时时间,单位秒-->
      28       </msbuild>
      29     </tasks>
      30   </project>
      31 </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文件夹也会产生编译好的站点了。

转载于:https://www.cnblogs.com/hnlong1/p/4664978.html

CCNET自动构建之路相关推荐

  1. .net 基于Jenkins的自动构建系统开发

    先让我给描述一下怎么叫一个自动构建或者说是持续集成 : 就拿一个B/S系统的合作开发来说,在用SVN版本控制的情况下,每个人完成自己代码的编写,阶段性提交代码,然后测试-修改,最后到所有代码完工,进行 ...

  2. gitlab 自动推送代码到gitee_Gitlab 利用 Webhook+jenkins 实现自动构建与部署

    之前部署了Gitlab的代码托管平台和Jenkins的代码发布平台.通常是开发后的代码先推到Gitlab上管理,然后在Jenkins里通过脚本构建代码发布. 这种方式每次在发版的时候,需要人工去执行j ...

  3. 地平线机器人_地平线机器人CEO余凯:基于深度学习的自动驾驶之路

    请关注公众号"汽车创新港",获取后续更多论坛实录! 加工作人员微信号:tinydanio,备注"我要入群"直接进入直播群! 今天都是大牛,下面的也是技术大牛,是 ...

  4. 红帽资深解决方案架构师魏新宇:云原生应用构建之路

    魏新宇 读完需要 7 分钟 速读仅需 3 分钟 魏新宇,红帽资深解决方案架构师.在 IaaS.PaaS 方面有丰富的经验,致力于开源解决方案在企业中的推广和应用.从售前角度主导了红帽在金融.汽车行业的 ...

  5. dotnet 配置 Gitlab 的 Runner 做 CI 自动构建

    今天在少珺小伙伴的协助下,使用了 gitlab 的 runner 给全组的项目做自动的构建.为什么需要使用 Gitlab 的 Runner 做自动构建,原因是之前是用的是 Jenkins 而新建一个底 ...

  6. 驭势科技CEO吴甘沙:探索中国式的自动驾驶之路

    本文根据吴甘沙在ADAS与自动驾驶趋势论坛上的发言修正. 大家好!我演讲的题目叫做"探索中国式的自动驾驶之路".非常荣幸能够来到这么一个论坛,其实这也是我作为一个传统的IT人第一次 ...

  7. 人工智能 | MATLAB 的自动驾驶之路

    自动驾驶是目前比较热门的话题,包含的技术领域五花八门,例如:雷达.摄像头.汽车电控.激光雷达.物体识别.高精度地图.导航技术等等.让我们一起来聊一聊 MathWorks 这几年的自动驾驶之路,分享最新 ...

  8. 仿nuxt.js,自动构建路由,释放你的双手?!

    前言 写过nuxt.js的同学,肯定也对nuxt的路由规则有一定的了解,在pages目录下创建文件,即可以自动构建路由,本文来带领大家实现一下在vue里怎么去自动构建路由.我这里使用的是Vue-cli ...

  9. iOS应用模块化的思考及落地方案(二)模块化自动构建工具的使用

    1.0 iOS模块化中的问题 前文已经介绍了模块化的流程及一些常见的问题,我们在这里再次总结一下. 在工作中,当我们开始一个新项目的时候,最先考虑的就是模块化工作. 模块化工作的想法是很美好的,可是执 ...

最新文章

  1. 网线传输速度测试_弱电工程CAT5eCAT6CAT6aCAT7网线怎么选择
  2. python读取图片属性信息
  3. redis重启会清除数据吗_从零开始手写 redis(三)内存数据重启后如何不丢失?...
  4. 第十章 使用机器学习的建议-机器学习老师板书-斯坦福吴恩达教授
  5. 【算法基础】数据结构导论第四章-树.pptx
  6. PHP代码审计中你不知道的牛叉技术点
  7. C++unique函数应用举例
  8. 线性表的顺序表示以及实现
  9. COPAN为政府机构提供低成本、高效节能的数字归档方案
  10. nginx 支持php扩展,Nginx和php安装及配置五之LINUX用PHPIZE安装PHP GD扩展
  11. 高仿小红书引导页实现效果
  12. 软件有效期如何实现_足疗洗浴收银软件如何实现跨店管理?
  13. layui select下拉框选项不显示
  14. 中国能源统计年鉴面板数据-分省市主要污染物排放指标(包含ECXEL2020年中国统计年鉴)
  15. iPython的安装过程
  16. Oracle执行计划——查看执行计划的方法
  17. 沙普利算法java实现_Java实现婚姻稳定匹配Gale- Shapley算法
  18. 全国快递物流查询-快递查询接口-阿里云代码封装
  19. 笔记本电脑桌面便签哪个软件好用,桌面便签软件下载
  20. Android开发音乐播放器

热门文章

  1. bootstrap+masonry.js写瀑布流
  2. 懒与馋的平衡:餐饮O2O市场广阔,发展不易
  3. uva 11275 3D Triangles (3D-Geometry)
  4. solarwinds ipam功能说明手册
  5. 智能实验室-杀马(Defendio) 4.27.0.951
  6. 1、配置PHP构建环境
  7. 如何写出更好的代码(文末有福利)
  8. 干货 分布式事务 一文通
  9. 使用Laravel Eloquent ORM 时如何查询表中指定的字段 1
  10. 如何避免核心代码资源泄漏和如何提高开发效率