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

在Windows中为Hudson Build创建连接

  •  0
  • Sagar  · 技术社区  · 15 年前

    我在哈德逊有一份建立在WindowsXP从属系统上的工作。我知道在WindowsXP中符号链接是不可能的(直接的),所以我尝试使用连接来代替。我写了一个批处理脚本:

    @echo off
    if "%1" == "" goto ERROR1
    if "%2" == "" goto ERROR2
    goto create
    
    :create
    echo Creating junction for %1 at %2
    if exist %2 junction -q -d %2
    md %2
    junction -q %2 %1
    goto :eof
    
    :ERROR1
    echo Source directory not specified
    goto :eof
    
    :ERROR2
    echo Destination directory not specified
    goto :eof
    

    在我的工作中,当我调用这个脚本时,它挂在行上 echo Creating junction for %1 at %2 . 这是我的Hudson“执行Windows批处理命令”:

    call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64
    
    copy C:\Data\Scripts\slink.bat .
    call slink.bat C:\Data\3rdParty64 3rdParty
    call slink.bat %WORKSPACE%\..\..\..\tds.core\label\%label% tds.core
    

    …这是输出:

    C:\Data\Hudson\dev\workspace\Common_Windows\label\DFWW9202>call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64 
    Setting environment for using Microsoft Visual Studio 2010 x64 tools. 
    
    1 file(s) copied. 
    Creating junction for C:\Data\3rdParty64 at 3rdParty
    

    有什么想法吗?(如果这不是正确的站点,请重新定向..抱歉,谢谢!)

    3 回复  |  直到 15 年前
        1
  •  4
  •   Satish Asok    15 年前

    解决这一问题的最佳方法是:将/accepteula命令行参数传递给junction命令。

    如: 连接-Q%2%1/Accepteula

        2
  •  2
  •   Mike    15 年前

    这个程序对我不起作用,但我缩小了真正的问题范围。

    一些背景:当用户第一次在Windows计算机上运行“junction.exe”程序时,它会弹出一个带有同意按钮的最终用户许可协议(eula)。一旦用户单击“同意”按钮,他们就可以正常使用该实用程序。

    Junction.exe正在为Hudson暂停,因为该服务正以“默认用户”的身份运行,“默认用户”从未单击“同意”按钮。这导致junction.exe不可见地无限期地暂停,等待单击,当然不会到达。

    我们修复它的方法是将系统配置为以众所周知的帐户而不是默认用户的身份运行Hudson服务。然后我们以该帐户的身份登录到Windows计算机,运行junction.exe,单击同意按钮,然后注销。

    从那时起,junction.exe就一直在哈德逊很好地工作。

    另一个选项是移动到Windows Server 2008。我听说这个版本在一个新的“mklink”实用程序中具有连接功能,这个实用程序内置于操作系统本身,没有一个EULA。

        3
  •  0
  •   Sagar    15 年前

    没关系,如果有人在找我,我会找到它的-我把“call”改为slink.bat改为“start/b”,并添加了完整的路径,所以:

    call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64
    start /B C:\Data\Scripts\slink.bat C:\Data\3rdParty64 3rdParty
    start /B C:\Data\Scripts\slink.bat slink.bat %WORKSPACE%\..\..\..\tds.core\label\%label% tds.core
    
    推荐文章