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

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

알림

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

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

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

8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
rein
16 years ago

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

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

최재훈
16 years ago

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

PeterPan
PeterPan
16 years ago

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

최재훈
16 years ago

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

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

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

PeterPan
PeterPan
16 years ago

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

PeterPan
PeterPan
16 years ago

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

최재훈
16 years ago

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

https://andromedarabbit.net/how_to_build_sln_using_msbuild/

최재훈
16 years ago

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