2010-03-17 49 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