Using PSExec from within CruiseControl .NET
I'm trying to call a PSExec task from CC.NET and running into some difficulties.
Here's the CC project
<project name="Test">
<tasks>
<exec>
<executable>C:\Utilities\psexec.exe</executable>
<buildArgs>-u [UNAME] -p [PWD] "C:\Utilities\Joel.bat"</buildArgs>
</exec>
</tasks>
</project>
Here's the source of Joel.bat
CLS
@ECHO OFF
What happens i开发者_如何学Gos that the first time I force the project to build, it runs successfully. The PSExec task is kicked off and the Joel.bat file is executed. I get some information in the build log about exit codes, but the task is successful.
Here's the build log output.
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.
The second time I force the build I get the dreaded "The Application failed to initialize properly (0xc0000142)" error message. I can't ever run the build more than once
More so, if I try to shut down the cruise control .net service from within the services MSC, it can't. It's like there's a lock somewhere that is taken and not released. The only way I can kill the service is by killing the ccservices.exe process.
I've tried the exact same thing using an nant task and gotten the exact same results. It works the first time, and fails the second and I can't shutdown the process.
I'm not sure if this is an issue with CC.NET or with PSEXEC (or me of course).
Anybody got any ideas? I'm posting to the CC.NET forums as well.
I'm using the latest and greatest of PSExec and 1.4.4 of CC.NET.
Thx, Joel
Run CruiseControl service under administrator account
Have you tried any other psexec options?
-d Don't wait for application to terminate. Only use this option for non-interactive applications.
maybe its the old eula problem, try the /accepteula option for psexec
精彩评论