2013-03-15 4 views
1

Jenkins에서 실행되도록 CCnet에서 MSBuild 스크립트를 이식합니다. MSBuild 프로젝트는 배포 패키지를 만드는 데 사용됩니다. 차라리 젠킨스가이 과정 자체를 주도하게 할 것이지만 그것은 장기적인 목표입니다.HgProcess를 호출하는 Jenkins 대상에서 실행중인 Msbuild가 HgProcessException과 함께 실패합니다. <hg.exe> 명령을 사용할 수 없습니다.

우리는

이 HgProcessException 오류 메시지 얻을 MSBuild를 mecurial 작업 (http://msbuildhg.codeplex.com/)에서 시도하고 HgPull 대상을 사용할 때 난 데 문제는 (제목처럼)입니다 : 명령 hg.exe이에게 사용할 수 없음 [프로젝트로의 경로]

나는 프로젝트 웹 사이트에서 누군가가 LibraryLocation proeprty를 목표에 추가하여 해결했지만, 아무런 효과가없는 것으로 보인다. 내 목표는 현재 다음과 같습니다

대상 이름 = "UpdateSources">

<HgPull 
     LibraryLocation="C:\Program Files\TortoiseHg\hg.exe" 
     Force="true" 
     Update="true" 
     LocalPath="$(SourcePath)" 
     /> 

<HgUpdate 
     LibraryLocation="C:\Program Files\TortoiseHg\hg.exe" 
     Clean="true" 
     LocalPath="$(SourcePath)" 
     /> 

내가 손해를보고 오히려입니다. 이 문제를 해결하기 위해이 게시물에 추가 정보가 필요하면 알려주십시오. 나는 정말 MSBuild에 익숙하지 않으므로 이것을 조사하기 시작해야 할 부분이 정말로 없다.

편집 : 내가 얘기를 깜빡 했네요

한 가지 내가 빌드 서버의 콘솔 창에서 MSBUILD 명령을 실행하려고했지만 같은 결과를 얻을 수있는 것이 었습니다. 이것은 CCNet에서 잘 작동한다고 생각하면 정말 이상합니다. CCNet이이 명령을 작동 시키는데 어떤 마법을 가지고 있습니까?

답변

0

그냥 'C : \ Program Files \ TortoiseHg'를 시스템 경로에 추가해보십시오. 어쩌면 CCNet은 젠킨스가 액세스 할 수없는 곳을 지정했습니다.

또한 위도 때문에 hg.exe가 실제로 해당 위치에 있는지 확인하십시오.

+0

두 가지 측면을 모두 검사하여 올바른 것으로 나타냅니다. –

1

이제 해결되었지만 불행히도 이러한 문제를 해결하기 위해 내가 어떤 변경을했는지 모르겠습니다. 필자는 경로 구분 기호와 그 뒤에 오는 파일 또는 설정 파일의 다른 부분에 있는지 여부를 판단했습니다. 그것은 슬래시가 있거나없이 슬래시가있는 경로를 지정해야하는 응용 프로그램간에 복원력/일관성이 없기 때문에 나에게 짜증을냅니다.