人永远追求效率(想偷懒),不想手动编译项目、发布站点于是产生了自动构建技术,.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文件夹也会产生编译好的站点了。

最新文章

  1. JDBC之java数据库的连接与简单的sql语句执行
  2. UI事件 计算器界面
  3. Tkinter教程之Toplevel篇
  4. C#使用Sockets操作FTP【转载】
  5. checkbox复选框
  6. SQL Server 查看数据表占用空间大小的SQL语句
  7. 研究一下TForm.WMPaint过程(也得研究WM_ERASEBKGND)——TForm虽然继承自TWinControl,但是自行模仿了TCustomControl的全部行为,一共三种自绘的覆盖方法,比TCustomControl还多一种
  8. python之matplotlib绘图基础
  9. Java实现3DES加密--及ANSI X9.8 Format标准 PIN PAN获取PIN BlOCK
  10. MySQL学习4 - 数据类型一
  11. c++学习过程
  12. py库:threading
  13. Cassandra联手Spark 大数据分析将迎来哪些改变?
  14. Stack Pointer Tracker
  15. ajax中的同步与异步修改数据的问题
  16. (转)分享一个技巧,利用批处理调用ruby脚本(可能你为路径苦恼)
  17. root密码重置(Centos 7)
  18. hdu1907 John 博弈
  19. homebrew, carthage以及redis的安装和启动
  20. 小明A+B

热门文章

  1. 超爽的Windows终端Cmder
  2. 剑指Offer 二进制中一的个数
  3. 【CF387D】George and Interesting Graph(二分图最大匹配)
  4. 【BZOJ4034】T2(树链剖分)
  5. 【NOIP2016后记】
  6. 百度图表echars插件使用案例
  7. 关于unity3d插件的自动打包
  8. 十六进制字符串jpg图片互转
  9. 2016Unite Shanghai 总结
  10. 网络入侵检测规避工具fragrouter