2011-10-19 3 views
0

psexec를 사용하여 CC.NET을 사용하는 이상한 문제가 있습니다.CruiseControl.NET은 Psexec을 사용합니다.

각 빌드에 몇 가지 이름 변경을 제외하고는 기본적으로 빌드 서버를 복제하고 있습니다. 둘 다 VM입니다. 첫 번째 서버는 훌륭하게 작동하지만 두 번째 서버에서 거의 동일한 프로젝트가 CC.NET 빌드를 완료하지 못합니다. 이 작업은 psexec 명령을 사용하여 배치 파일을 실행하는 CC.NET 서버 구성 부분으로 이동 한 후에 발생합니다.

psexec 명령은 간단하며 Ranorex 자동 테스트 사례 인 exe 파일을 트리거하는 역할을합니다. 테스트 케이스는 현재 사용자의 세션 (세션 1)에서 실행해야 UI 구성 요소를 볼 수 있습니다 (Ranorex 제약 조건).

psexec \\<server name> -i 1 cmd /c C:\Users\build\<path to exe> 

OS가 Ranorex는 3.1이며, CC.NET 및 PsExec를이 날짜를 기준으로 최신 버전입니다, 윈도우 7 :

는 명령입니다.

CC.NET 빌드 로그의 출력은 (이것은 단지 마지막 부분입니다) 다음과 같습니다

<buildresults> 
    <message level="Error">PsExec v1.98 - Execute processes remotely</message> 
    <message level="Error">Copyright (C) 2001-2010 Mark Russinovich</message> 
    <message level="Error">Sysinternals - www.sysinternals.com</message> 
</buildresults> 

이 psexec에 출력 될 것으로 보인다. 이 로그를 얻을 수있는 유일한 방법은 CC.NET이 강제로 빌드를 중단하면 그 시점에서 빌드가 멈추는 것입니다. 누구든지 psexec 부분에 빌드가 멈추는 이유에 대한 아이디어가 있습니까?

+0

당신은 두 서버에서 동일한 계정으로 ccnet을 실행하고 있습니까? – Pedro

답변

1

PSExec에는 항상 "중단"문제가있어 해결책 중 하나는 출력을> nul로 리디렉션해야한다는 것입니다.

http://forum.sysinternals.com/psexec-always-hangs-when-run-from-java_topic5013.html

+0

빌드가 실행 파일 (예 : psexec 명령)에 도달하면 빌드가 정지됩니다. 명령을 psexec \\ -i1> nul cmd/c C : \ Users \ build \ 으로 변경했지만 여전히 동일한 문제가 있습니다. – Zolt

+0

문제는 psexec이 CC.NET 서비스에 의해 트리거되었다는 것입니다. 이 서비스는 세션 0에서 세션 0에서 실행되었습니다. 결과적으로 psexec을 처음 실행할 때 조건을 받아들이라는 대화가 나에게 보이지 않았습니다. "서비스가 데스크톱과 상호 작용하도록 허용"으로 서비스 속성을 수정 한 후 세션을 전환하고 계약을 클릭 한 다음 내 세션으로 다시 전환하고 실행 파일을 완료 할 수있었습니다. – Zolt

+1

@Larry -'/ accepteula' 플래그도 있습니다. – manojlds