2013-01-11 6 views
2

TFS 2008에서 TFS 빌드 스크립트를 사용자 지정 한 프로젝트가 있으며 워크 플로 파일 대신 빌드가 MSBuild 기반이었습니다. 이 사용자 정의 스크립트는 <Exec> task을 사용하여 NAnt를 호출하여 패키징을 수행합니다.TFS 2012 업그레이드 후 업그레이드 된 MSBuild 빌드 스크립트에서 Exec 태스크로 TFS 빌드가 실패 함

Target "AfterCompile: (TargetId:321)" in project "C:\Builds\2\Proj\Continuous Integration (Proj)\BuildType\TFSBuild.proj" (target "Compile" depends on it): 
Using "Exec" task from assembly "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". 
Task "Exec" (TaskId:209) 
    Task Parameter:Command=C:\Tools\NAnt\bin\Nant.exe (TaskId:209) 
    Task Parameter:WorkingDirectory=..\Sources\ (TaskId:209) 
    Command: (TaskId:209) 
    C:\Tools\NAnt\bin\Nant.exe (TaskId:209) 
C:\Builds\2\Proj\Continuous Integration (Proj)\BuildType\TFSBuild.proj(225,5): error MSB6003: The specified task executable "cmd.exe" could not be run. The directory name is invalid 
Done executing task "Exec" -- FAILED. (TaskId:209) 
Done building target "AfterCompile" in project "TFSBuild.proj" -- FAILED.: (TargetId:321) 

그 라인은 다음과 같습니다 :

TFS 2012 새 서버 및 업그레이드에 우리의 TFS 2010 설치를 마이그레이션 한 후, TFSBuild.proj 파일의 해당 행이 오류를 일으키는

<Target Name="AfterCompile"> 
    <Exec Command="C:\Tools\NAnt\bin\Nant.exe" WorkingDirectory="..\Sources\" /> 
    <!-- ... --> 
</Target> 
+1

최대 로깅을 켜 놓았습니까? MsBuild 명령 줄에/v : diag를 추가하여 진행 상황에 대한 자세한 정보를 얻으십시오. – jessehouwing

+0

나는 로깅 장황함, @ jessehouwing을 변경하는 것을 잊어 버렸지 만, 일단 진단으로 변경하면 추가 정보를 얻지 못했습니다. – bdukes

+0

스트라이크, 나는 방금 추가 정보를 위해 잘못된 장소를 찾고있었습니다. Visual Studio에서 빌드보기, 방금 드롭 폴더의 로그 파일). 즉, 그것이 우리에게 알려주는 것이 아니라는 것입니다. – bdukes

답변

3

작업 디렉토리를 확인하십시오. 나는 이것이 존재하지 않는 장소를 가리킬 것으로 기대한다.

특히 SourcesBinaries 디렉터리 이름은 TFS 2012에서 srcbin으로 변경되었습니다. 올바른 값을 얻으려면 $(SourcesSubdirectory)$(BinariesSubdirectory) 속성을 사용하십시오.

관련 문제