MSBuildTasks 도입하기

  • Post author:
  • Post category:
  • Post comments:0 Comments
  • Post last modified:October 2, 2007

MSBuild 도입하기에서 MSBuildTasks를 살짝 소개한 적이 있다. 글을 쓰고 나서 프로젝트용 빌드 스크립트에 도입하려고 했다가 삽질 끝에 포기했었다. 어차피 새 기능을 도입하려는 게 아니라, 기존에 구현해 놓은 기능을 좀더 세련되게 포장하려는 의도였기 때문에 굳이 힘들여 고칠 이유가 없었다. 그러니 나중에 필요하면 도입하자는 생각이었다.

예상했던대로 MSBuildTasks가 필요한 시점이 왔다. 그래서 다시 손을 봤는데 의외로 쉽게 문제가 해결됐다. 지난번엔 뭐가 문제였는지 이상하게 생각될 정도였다.

MSBuildTasks는 인스톨러(.msi)와 소스 코드 형태로 배포된다. 귀찮으니 인스톨러를 다운로드 받아서 설치한다. 설치 경로는 기본적으로 C:\Program Files\MSBuild\MSBuildCommunityTasks\가 된다.

일단 인스톨러로 설치하긴 했지만, 개발에 참여하는 모든 사람에게 MSBuildTasks를 설치하라고 할 수는 없다. 소스 버전 관리 시스템에서 소스 코드를 내려받으면 모든 게 설치되어 있어서 MSBuildTasks를 도입했다는 사실조차 모르게 해야 한다.

우선 MSBuildCommunityTasks 폴더를 복사해서 소스 코드 트리에 놓는다. 예를 들어 이런 식이다.

\project
	\branch
	\tags
	\trunk
		\doc
		\src
			\my-project
			\msbuildscript.xml
			\buildtools
				\MSBuildCommunityTasks

여기선 빌드 스크립트가 msbuildscript.xml이고, MSBuildCommunityTasks보다 디렉토리 경로 상 두 단계 위에 올려져 있다고 해보겠다.

이제 MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets 파일을 메모장으로 열어서 다음과 같이 수정한다.

<PropertyGroup>
    <MSBuildCommunityTasksPath >.</MSBuildCommunityTasksPath>
	<MSBuildCommunityTasksLib>MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib>
</PropertyGroup>

그러고 나서 빌드 스크립트 msbuildscript.xml를 손보면 모든 게 끝이다. 문서를 보면 기존 빌드 스크립트에 <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>를 추가하면 MSBuildTasks의 기능을 쓸 수 있다고 한다. 하지만 이 경우에는 <Import Project="BuildTool\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>라고 상대 경로를 적어주면 된다.

끝이다. 이렇게만 하면 별도의 설치 과정 없이도 MSBuildTasks의 기능을 누구나 사용할 수 있다.

Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
follow me
  • 싸이월드 법인가 뭔가 화제였는데 이런 게 훨씬 현실적인 접근이다 https://t.co/fSB9LiMYzO
    1 day ago
  • 시장을 좋게 보는 사람을 좋게 볼 근거를 찾고 그렇지 않은 사람은 나쁘게 볼 근거만 열심히 찾네. 그 반대로 해야 얻는 게 있을텐데
    1 day ago
  • 일본이 liberal country 라는 말이 마음에 걸리네 https://t.co/aLteP9gEE8
    2 days ago
Buy me a coffeeBuy me a coffee
×
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
Latest Posts