• CCNET自动构建之路


    人永远追求效率(想偷懒),不想手动编译项目、发布站点于是产生了自动构建技术,.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.NETwebdashboard。
        2. 站点未正常运行。访问刚刚创建的站点有可能出现这样的错误:由于目标计算机积极拒绝,无法连接,127.0.0.1:21234。如果按上面的步骤给了足够的权限仍出现这样的问题,那只能是因为没有启动CruiseControl.NET,运行起来吧!
    2. 配置
      1. 配置文件在C:Program Files (x86)CruiseControl.NETserverccnet.config
      2. 配置说明:
         1 <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
         2   <!--定义项目-->
         3   <project name="MentenApi">
         4     <artifactDirectory>D:xxxx</artifactDirectory><!--对应的日志会写到这里-->
         5     <!--配置代码源,这里用的是svn-->
         6     <sourcecontrol type="svn">
         7       <executable>C:Program FilesTortoiseSVNinsvn.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:xxxx</workingDirectory><!--获取代码的存放位置-->
        13     </sourcecontrol>
        14     <!--触发器-->
        15     <triggers>
        16       <intervalTrigger seconds="300" />
        17     </triggers>
        18     <!--要执行的任务-->
        19     <tasks>
        20       <!--编译-->
        21       <msbuild>
        22         <executable>C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe</executable><!--MSBuild的位置(视.NET的版而定)-->
        23         <buildArgs>/p:OutputPath=D:xxx1</buildArgs><!--给MSBuild指定参数,这里指定的编译后的输出目录-->
        24         <workingDirectory>D:xxxx</workingDirectory><!--通过svn获取下来的代码位置,与上面sourcecontrolworkingDirectory的值一致-->
        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.NETserverCCValidator.exe检查。
    3. 看效果
      1. 访问ccnet站点,如果一切正常的话,上面会显示刚刚配置的项目。可以在这里直接手动启动编译。
      2. 当然,事情不会那么简单,不出意外的话,Force后会告诉你编译失败,具体的原因可以点击左侧链接查看。                                                                                                                                                                   
      3. 可能出现的问题:
        1. 系统找不到指定的文件。这个时候需要确认是否正确安装了svn、vs。
        2. 编译不通过。可能是使用了NuGet管理dll,需要下载缺少的dll,或者是服务器上没有对应的MVC环境,安装下就好。
    4. 最后
      1. 一切正常后,可以在编译后的输出目录中找到编译后的文件,同时这个目录下的_PublishedWebsites文件夹也会产生编译好的站点了。
  • 相关阅读:
    Java函数式接口与逐步lambda简化
    Java继承知识点总结(基础知识3)
    Java静态工厂方法新建对象
    Java对象与类知识点总结(基础知识2)
    Java多线程并发入门(基础知识)
    Java基本程序设计结构(基础知识1)
    【数据库】JDBC课设(5)将图片以二进制流方法添加进MySQL并查询
    【数据库】JDBC课设(4) DatabaseMetaData 获得数据库信息
    【数据库】JDBC课设(3)TYPE_SCROLL_INSENSITIVE使结果集可以前后滚动
    简单总结.net下几种序列化
  • 原文地址:https://www.cnblogs.com/hnlong1/p/4664978.html
Copyright © 2020-2023  润新知