MSBuild 알기 - #001 닥치고 해봐!

  • Post author:
  • Post category:
  • Post last modified:August 30, 2010

예제 다운로드

구글 코드에서 내려 받자.

svn checkout h ttp://imaso.googlecode.com/svn/trunk/ imaso-read-only

무턱대고

무턱대고 MSBuild 스크립트가 어떻게 생겼는지 살펴보자.

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Target Name="Clean">
	<Message Text="타겟: Clean" />
</Target>

<Target Name="Build">
	<Message Text="타겟: Build" />
</Target>

<Target Name="Rebuild" DependsOnTargets="Clean; Build">
	<Message Text="타겟: Rebuild" />
</Target>

</Project>
		

MSBuild의 빌드 스크립트를 구성하는 XML 구성요소는 크게 ItemGroup, PropertyGroup, Target, 그리고 Tasks가 있다.

  • ItemGroup : C++ 등에 익숙한 프로그래머라면 배열이라 생각하면 된다.
  • PropertyGroup : 변수를 하나씩 선언할 때 쓴다.
  • Target (작업) : 함수라 생각하면 된다. 위 코드엔 Clean, Build, Rebuild 이렇게 세 가지 Target이 있다.
  • Task : Target 안에서 어떤 기능을 맡아 수행하는 작은 함수이다. 위의 코드에선 Message란 Tasks를 사용했다.

대책 없이

MSBuild 스크립트를 짜는 법을 자세히 공부하기 전에 우선 돌려나 보자.

MSBuild_Win32.bat msbuild.xml /t:Build

경고(붉은 색 글자)와 오류(노란 색 글자)가 전혀 없으면 빌드 스크립트는 제대로 실행된 것이다. 메시지를 자세히 살펴보면 “타겟: Build”라는 문장이 있다. 이 부분이 <Message /> task가 한 일이다.

디버깅 기초

MSBuild 스크립트를 실행하는 msbuild 인터프리터의 명령 줄 옵션부터 살펴보자.

MSBuild_Win32.bat /?

자세히 읽어보면 디버깅할 때 유용한 옵션이 몇 개 나오는데 제일 중요한 건 /v, /verbosity 이다. q, m, n, d, diag 등의 단계가 있는데 디버깅 할 땐 diag 만 알면 된다.

MSBuild_Win32.bat msbuild.xml /t:Rebuild /v:diag
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.