代码之家  ›  专栏  ›  技术社区  ›  Denis

CruiseControl.net和安装驱动器

  •  1
  • Denis  · 技术社区  · 14 年前

    我正在运行CruiseControl.net作为服务,但是我正在使用网络驱动器构建参考物的一些项目。如H所示:而不是\machine\dir。我无法更改项目引用。如何在项目构建之前或CruiseControl开始运行时安装h:drive?

    3 回复  |  直到 13 年前
        1
  •  1
  •   Pedro    14 年前

    从命令行,您可以调用“net use”来设置映射驱动器。在编译代码之前,您可能能够从exec任务中运行此命令。

        2
  •  1
  •   Community CDub    7 年前

    我已经测试了以下.bat文件,使用它可以很好地工作:
    -CruiseControl.net版本1.5.7256.1
    -一个.bat文件,运行于 <exec> 任务。

    .bat文件

    ECHO OFF
    NET USE \\Server\data /USER:domain\user password
    ECHO ON
    C:\utils\robocopy.exe C:\build\data \\Server\data *.*
    

    ccnet.config配置

     <project name="ProjectName">
        <!-- snip -->
        <tasks>
            <!-- snip -->
            <exec>
                <executable>deploy.bat</executable>
                <baseDirectory>Configuration\</baseDirectory>
                <buildArgs></buildArgs>
                <buildTimeoutSeconds>60</buildTimeoutSeconds>
                <successExitCodes>0,1,2,3,4,5,6,7,8</successExitCodes>
             </exec> 
    


    笔记:
    我使用默认设置和帐户安装了巡航控制服务。
    我转身 回声关闭 然后 ,以防止将用户详细信息放入生成日志中。

    我得到了不使用此驱动器号的提示:
    Mapping a network drive without hardcoding a drive letter in a batch file

    更新: 包含ccnet.config语法

        3
  •  0
  •   Denis    13 年前

    在我的ccnet.config中:

     <exec>
            <executable>setup_build.cmd</executable>
            <baseDirectory>&BaseDIR;\CruiseControlNET</baseDirectory>
            <buildArgs>&BaseDIR;\AllProjectsTFS</buildArgs>
            <buildTimeoutSeconds>&BuildTimeoutInSeconds;</buildTimeoutSeconds>
     </exec>
    

    我检查了SVN中CruiseControlNet目录下的setup_build.cmd(设置如下所述: http://confluence.public.thoughtworks.org/display/CCNET/Configure+CruiseControl.Net+to+Automatically+Update+its+Config+File )

    安装程序build.cmd包含:

    @ECHO OFF
    
    :CHECK_PARAMETERS
    IF "%1"=="" GOTO SYNTAX
    
    :PRINT_PARAMETERS
    SET BASE_DIRECTORY=%1
    ECHO PARAMETERS:
    ECHO BaseDirectory: %BASE_DIRECTORY%
    ECHO.
    
    :ARTIFACTS_DIRECTORY
    ECHO CREATING ARTIFACTS DIRECTORY:
    SET ARTIFACTS_DIR=%BASE_DIRECTORY%\Artifacts
    ECHO Creating Artifacts Directory in: %ARTIFACTS_DIR%
    IF EXIST %ARTIFACTS_DIR% RMDIR /S /Q %ARTIFACTS_DIR%
    MKDIR %ARTIFACTS_DIR%
    ECHO SUCCESS
    ECHO.
    
    :SETUP_NETWORK_DRIVES
    ECHO MAPPING NETWORK DRIVES:
    IF NOT EXIST H: NET USE H: \\server\share
    NET USE
    GOTO END
    
    :SYNTAX
    ECHO Wrong Arguments:
    ECHO SYNTAX: setup_build.cmd [BASE_DIRECTORY]
    EXIT /B -1
    
    :END
    EXIT /B 0