2010-03-17 51 views
1

中,我试图调用从CC.NET一个PSEXEC任务,运行到一定的困难。使用PSEXEC从CruiseControl的.NET

这里的CC项目

<project name="Test"> 
    <tasks> 
    <exec> 
     <executable>C:\Utilities\psexec.exe</executable> 
     <buildArgs>-u [UNAME] -p [PWD] "C:\Utilities\Joel.bat"</buildArgs> 
    </exec> 
    </tasks> 
</project> 

这里会发生什么事是我第一次强制项目建设,运行成功的Joel.bat

CLS 
@ECHO OFF 

的来源。该PSEXEC任务拉开序幕并执行Joel.bat文件。我在构建日志中获取有关退出代码的一些信息,但任务已成功完成。

这里的生成日志输出。

PsExec v1.97 - Execute processes remotely 
Copyright (C) 2001-2009 Mark Russinovich 
Sysinternals - www.sysinternals.com 
C:\Utilities\Joel.bat exited with error code 0. 

我第二次强制构建我得到了可怕的“应用程序未能正确初始化(0xc0000142)”的错误消息。我不能永远运行构建不止一次

更更何况,如果我尝试从服务MSC内关闭巡航控制.NET服务,它不能。就好像有一个锁被锁定在某个地方而没有被释放。我可以杀死该服务的唯一方法是通过杀死ccservices.exe进程。

我试过完全相同的事情,使用一个nant任务,并得到完全相同的结果。它第一次运作,第二次失败,我不能关闭这个过程。

我不确定这是CC.NET还是与PSEXEC(或我当然)的问题。

任何人有什么想法?我也发布到CC.NET论坛。

我使用的是最新最好的PSExec和CC.NET 1.4.4。

THX,乔尔

回答

0

您是否尝试过其他任何PSEXEC options?在管理员帐户

+0

是的,我已经试过这个/ ACCEPTEULA选项。在这个特定的场景中,我希望它等到任务完成。这不是一个火,忘记类型的任务,因为在生成过程中其作用,并有报告进度回CC。 – JayRu 2010-03-17 19:19:29

2

运行CruiseControl的服务,也许它的老EULA问题,尝试PSEXEC

0

-d Don't wait for application to terminate. Only use this option for non-interactive applications. 
+0

如果情况确实如此,那么第一次就会失败,而不是第一次开始工作,之后就会失败。 – Pedro 2012-10-22 20:49:31