我正试图从CC.NET调用PSExec任务并遇到一些困难。
这是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论坛上发帖。
我正在使用最新最好的PS.NETe和1.4.4的CC.NET。
Thx,Joel
答案 0 :(得分:2)
在管理员帐户下运行CruiseControl服务
答案 1 :(得分:0)
您是否尝试过任何其他psexec options?
-d Don't wait for application to terminate. Only use this option for non-interactive applications.
答案 2 :(得分:0)
也许是旧的eula问题,请尝试psexec的/ accepteula选项