실전! 지속적인 통합 5편: 비주얼 스튜디오 솔루션 빌드하기

  • Post author:
  • Post category:칼럼
  • Post comments:8 Comments
  • Post last modified:December 12, 2010

알림

2008.07.02 이번 기사 내용 중 일부를 보다 나은 방법으로 대체할 수 있다는 걸 깨달았는데, 구체적인 설명은 이 기법을 완전히 익히고 실험해본 후에 하려 한다.

This Post Has 8 Comments

  1. rein

    약간 뻘소리지만(…) VS 2008을 (express 버젼이긴하지만) 사용했을 때에는 MSBuild 경로가 .net 프레임웍 3.x기준으로 잡히더군요 -_-;

    그래서 MSBuild 경로가 WindowsRoot\Microsoft.NET\Framework\v3.5\MSbuild\ 밑에 있더라구요 -_-;;
    MSBuild 쪽에 있는 CPU 여러개를 사용한 동시 컴파일 옵션을 써보려다가 오류가 나서 왜 안되나 했더니, .net 2.0 의 MSBuild를 써서 오류가 난다는걸 발견했었죠;

  2. 최재훈

    네, 맞습니다. 이 칼럼을 시작할 때 VS2008이 정식 출시가 안 되어서 VS2005를 기준으로 삼았습니다. 단위 테스트에 대한 글이 끝나면, 컴파일 부분을 보강해서 다룰 생각입니다. 그때 지면이 충분하면 VS2008도 다뤄보겠습니다.

  3. PeterPan

    좋은 글 잘 읽었습니다.
    빌드 자동화 스크립트라고 하면 전 makefile 처럼 설정을 많이 해 줘야 하는 줄 알았는데
    MSBuild.exe 프로젝트.sln /t:Rebuild
    /p:Configuration=Debug,Platform=Win32
    이런 식으로만 해 주면 되는 것인가요?
    그리고 각각의 빌드 환경에 따라서 소스의 복사본을 따로 다 받아야 하는 건가요? 실제적으로는 컴파일 환경을 조절해서 프로젝트를 진행하실텐데 빌드 서버에 로컬 복사본을 MyPrj-Debug-Win32 폴더에 다 받고 MyPrj-Release-Win32 폴더에 다 받고 이렇게 하는 것을 추천하시는 건가요?

  4. 최재훈

    msbuild는 솔루션 파일을 빌드할 수 있습니다. 단, C++ 프로젝트일 땐 주의해야 합니다. 비주얼 스튜디오와 미묘하게 다른 빌드 규칙을 적용하기 때문입니다. 아니면 MSBuild 스크립트를 따로 만들고 그 안에서 비주얼 스튜디오 바이너리를 호출하는 방법을 써도 됩니다. 그러면 아무 문제가 없겠죠?

    세부사항은 나중에 제대로 다룰 생각이긴 한데, 연재 속도로 봐선 10월은 되어야 가능할 듯 합니다. 쩝.

    빌드 환경에 따라 소스 복사본을 따로 받는 걸 추천합니다. 안 그래도 되지만, 한 폴더에 몰아놓고 빌드하면 되려 귀찮은 일이 많아지거든요.

  5. PeterPan

    결국 VC++로 프로젝트를 진행할 경우 어떤 파일(MSBuild, VCBuild, devenv)을 사용하는 것이 가장 좋나요? 여러가지 환경(Win32,x64), 여러가지 프로젝트(셋업프로젝트)에서 사용할 때.
    글을 읽어 보니 MSBuild는 셋업 프로젝트를 못하고 devenv는 다 가능한 것 같고, VCBuild는 사용을 안 해 봐서 모르겠군요.

  6. PeterPan

    혹시 사용하시는 배치 파일에 대해서 좀 예를 들어 주실 수 있으신가요? 저는 현재 CruiseControl.NET은 설치되어 있지 않고 .bat 파일로 일단 자동화를 시작하려고 합니다.

  7. 최재훈

    복잡한 환경이라면 MSBuild 스크립트 안에서 Exec 태스크를 이용해 devenv를 호출하는 걸 추천합니다. CCNET.config에서는 이렇게 만든 MSBuild 스크립트를 호출하구요. 배치파일도 마찬가지입니다. 단순히 MSBuild 스크립트 래퍼 정도로 생각하시면 됩니다. 좀더 자세한 내용은 다음 글을 읽어보시면 아실테고, 그래도 궁금하시면 질문 남겨주세요.

    https://andromedarabbit.net/how_to_build_sln_using_msbuild/

  8. 최재훈

    아, 제가 칼럼에선 이 내용을 나중에 다루는데요. 다 이유가 있습니다. MSBuild 스크립트부터 다뤄야 해서 내용이 많거든요.

Leave a Reply to PeterPan Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.