2010-06-24 6 views
2

rake와 함께 멋진 albacore gem을 사용하여 새 .NET 프로젝트를 빌드하고 있습니다. 우리 조직은 여전히 ​​NAnt를 사용하고 있으며, 빌드 스크립트가 실행될 때 로그 파일을 볼 것으로 예상되는 사람들이 많이 있습니다. STDOUT에 덤프 된 msbuild 태스크 출력을 로그 파일에 저장하려면 어떻게합니까?msbuild 출력을 레이크에서 로그 파일로 파이프하는 방법

+0

레이크 작업은 어떻게하고 있습니까? CI 서버에서? 명령 줄에서? 또는? –

+0

안녕하세요 Derick - 지금은 명령 줄에서 실행 중이며 곧 hudson에 연결될 것입니다. 허드슨은 레이크 실행의 실제 로그 파일 없이는 괜찮을 것이라고 사람들에게 확신 시켰습니다. 그리고 msbuild 및 nunit 작업의 ".parameters"옵션을 사용하여 출력을 로그하여 로그 파일에 대한 욕구를 충족 시켰다고 생각합니다. 나는 albacore를 좋아하고있다! 너네들 잘 ​​해냈어. – dalesmithtx

+0

cool. 예, hudson은 모든 STDOUT을 자체 로그로 캡처하기 때문에 hudson의 로그 파일은 실제로 필요하지 않습니다. 하지만 커맨드 라인에서 필요하다면 STDOUT을 파일로 리다이렉트 할 수있을 것입니다 : rake >> build.log –

답변

3

해결책을 찾았습니다. 우리는 CI 서버 (hudson)에 대한 빌드 로그 파일이 실제로 필요하지 않지만, 빌드가 로컬에서 실행될 때, 특히 체크인 댄스 및 빌드를 수행 할 때 실제 파일을 확인하는 것이 좋습니다. 실패합니다.

다행히 albacore 친구들은 똑똑해서 ".parameters"옵션을 만들었습니다.이 옵션을 명령 줄 도구 작업과 함께 사용하여 해당 작업에서 명시 적으로 처리하지 않는 매개 변수를 추가 할 수 있습니다. 예를 들어 msbuild 작업에 매개 변수를 추가하여 MSBuild에 대한 로그 파일을 지정할 수 있습니다. 그것은 더 많은 물건을 할 수 있기 때문에

BUILD_REPORTS = 'BuildReports' 
MSBUILD_EXE = "C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe" 

directory BUILD_REPORTS 

CLEAN.include BUILD_REPORTS 

task :default => [:build] 

desc "Build the solution" 
msbuild :build => BUILD_REPORTS do |msb| 
    msb.properties :configuration => :Debug 
    msb.path_to_command = MSBUILD_EXE 
    msb.targets :Clean, :Build 
    msb.solution = "./mysolution.sln" 
    msb.parameters "/l:FileLogger,Microsoft.Build;logfile=" + log_file("build") 
end 

def log_file(log_file_name) 
    BUILD_REPORTS + log_file_name + ".log" 
end 

우리 rakefile 좀 더 복잡한 것보다,하지만 당신은 아이디어를 얻을 : 그리고 이런 작은 선물을 간다.

관련 문제