지속적인 통합에 관한 글을 씁니다
오랜 만에 광고 좀 합니다. 마이크로소프트웨어의 칼럼을 맡아 쓴지도 어느새 2년 가까이 되어 갑니다. 지난 해엔 커뮤니티 노트라는 칼럼을 썼고, 기대했던 것보다 즐겁게 읽은 독자가 많은 듯 해서 저도 기뻤습니다.…
오랜 만에 광고 좀 합니다. 마이크로소프트웨어의 칼럼을 맡아 쓴지도 어느새 2년 가까이 되어 갑니다. 지난 해엔 커뮤니티 노트라는 칼럼을 썼고, 기대했던 것보다 즐겁게 읽은 독자가 많은 듯 해서 저도 기뻤습니다.…
준비물: MSBuildTasks <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="BuildTool\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> <!-- 테스트용 DSN 정보 --> <ItemGroup> <DSNToCreate Include="Item"> <Name>DSN_NAME1</Name> <Server>DatabaseServer1</Server> <Database>InitialCatalog1</Database> <Description>ODBC DSN for the Database: DatabaseServer1</Description> <Driver>SQL Native Client</Driver> <LastUser>sa</LastUser> <Trusted_Connection>Yes</Trusted_Connection> </DSNToCreate>…
왜 64비트 MSBuild인가? 64비트 운영체제엔 두 개의 MSBuild가 있다. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe와 C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\msbuild.exe인데, 자세히 보면 64란 숫자가 붙어있다. 한 마디로 말해 32비트용 MSBuild이냐, 64비트용 MSBuild이냐라는 차이가 있다. 논의를 좀더 진행하기에 앞서 비주얼…
그 동안 빌드하는 데 시간이 오래 걸려서 여러 번 손을 봤지만, 근본적인 문제는 건드리지 않아서 그리 효과적인 조치를 취했다고는 할 수 없었다. 빌드 서버를 도입하기 전에 각자 애플리케이션을 하나씩 맡아서…
혹시 쓸 일이 있을지도 모르니 메모해놓자. 출처는 MSDN 포럼이다. @echo off msbuild Helper.csproj /t:Rebuild /p:Configuration=Debug set BUILD_STATUS=%ERRORLEVEL% if %BUILD_STATUS%==0 echo Build success if not %BUILD_STATUS%==0 echo Build failed
CCStatistics for CruiseControl .NET 통계를 깔끔한 그래프로 정리해서 보여준다. 프로젝트 진행 상황을 한 눈에 파악할 수 있을 듯 하다. 곧 시간 내서 도입해볼 요량이다. 메모. 아직 문서화가 안 되어 있고,…
지난 편에서는 고통과 좌절을 경험했다. 머리를 아무리 싸매도 해결책이 안 떠올라서 좌절하던 중에 다른 분과 이야기를 나누다가 멋진 해법을 알게 됐다. 요컨대 Build만 하고 Rebuild는 하지 않는 게 가장 간단하고…
프로젝트 규모가 커질수록 빌드 시간도 길어진다. 빌드 시간이 길어지면 피드백도 늦어진다. 퇴근 시간 다 돼서 소스 코드를 커밋해놓고 빌드가 끝나길 기다린다. Rebuild하느라 5분을 기다렸는데, 빨간불이 들어온다. 새로운 소스 코드 파일을…
MSBuild 도입하기에서 MSBuildTasks를 살짝 소개한 적이 있다. 글을 쓰고 나서 프로젝트용 빌드 스크립트에 도입하려고 했다가 삽질 끝에 포기했었다. 어차피 새 기능을 도입하려는 게 아니라, 기존에 구현해 놓은 기능을 좀더 세련되게…
두 사람이 한 소스 코드를 건드리다 보니, 충돌이 일어나는 일이 잦았다. 이런 문제를 해결하려면 참가자 모두가 자주 커밋하고 자주 업데이트하는 수밖에 없다. 자주 커밋하는 건 각자 노력에 달린 문제이고 이를…