맨위로가기

MSBuild

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

MSBuild는 마이크로소프트에서 개발한 빌드 플랫폼으로, 주로 .NET 프로젝트를 빌드하는 데 사용된다. 2003년 비주얼 스튜디오 2005와 닷넷 프레임워크 2.0을 위해 처음 개발되었으며, 이후 비주얼 스튜디오 및 닷넷 프레임워크의 발전에 따라 지속적으로 업데이트되었다. MSBuild는 대상, 작업, 속성 및 항목으로 구성되며, NMAKE의 기능을 계승하여 Visual Studio의 팀 빌드 기능과 통합되어 사용된다.

더 읽어볼만한 페이지

  • 컴파일 도구 - Libtool
    Libtool은 다양한 유닉스 계열 운영 체제에서 정적 및 동적 라이브러리 생성을 관리하고, 운영 체제별 차이로 인한 소프트웨어 이식 문제를 해결하기 위해 GNU 빌드 시스템에서 사용되는 도구이다.
  • 컴파일 도구 - GNU 빌드 시스템
    GNU 빌드 시스템은 Autoconf, Automake, Libtool 등의 오토툴과 GNU make 등으로 구성되어 다양한 UNIX 시스템에서 소프트웨어 빌드 및 설치를 지원하지만, 복잡성과 이식성에 대한 비판도 존재한다.
  • 마이크로소프트 비주얼 스튜디오 - 비주얼 베이직
    비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다.
  • 마이크로소프트 비주얼 스튜디오 - J 샤프
    J#은 마이크로소프트에서 개발한 .NET Framework 기반의 프로그래밍 언어로, 자바와 유사한 문법을 가지며 기존 자바 코드의 .NET 플랫폼 이전 및 .NET 언어와의 상호 운용성을 지원했으나 현재는 개발이 중단되었다.
  • 빌드 자동화 - GNU 빌드 시스템
    GNU 빌드 시스템은 Autoconf, Automake, Libtool 등의 오토툴과 GNU make 등으로 구성되어 다양한 UNIX 시스템에서 소프트웨어 빌드 및 설치를 지원하지만, 복잡성과 이식성에 대한 비판도 존재한다.
  • 빌드 자동화 - Gradle
    Gradle은 빌드 프로세스를 자동화하는 오픈 소스 시스템으로, Groovy를 기반으로 하며 짧은 설정 파일로 빌드 단계를 설명하고 플러그인을 통해 기능을 확장하며 Ant와 통합된다.
MSBuild - [IT 관련 정보]에 관한 문서
기본 정보
유형빌드 자동화 소프트웨어
개발자마이크로소프트
.NET 재단
최초 출시일2003년
최신 버전v17.8.3
최신 릴리스 날짜2023년 11월 15일
프로그래밍 언어C 샤프
운영체제크로스 플랫폼
플랫폼.NET Framework
.NET
라이선스MIT 허가서

2. 역사

MSBuild는 2003년 비주얼 스튜디오 2005(코드명 Whidbey)[21]윈도우 비스타(코드명 롱혼/Longhorn)에 사용하기 위해 닷넷 프레임워크 2.0을 대상으로 처음 만들어졌다.[22][23] 초기에는 닷넷 프레임워크와 함께 번들로 제공되었으나, 비주얼 스튜디오 2013부터는 비주얼 스튜디오와 함께 번들로 제공된다.[11]

3. 버전

MSBuild는 닷넷 프레임워크비주얼 스튜디오의 발전에 따라 꾸준히 업데이트되어 왔다. 다음은 주요 버전 정보이다.[24][10]

버전닷넷 프레임워크비주얼 스튜디오 버전기본 설치 위치 (x86)
2.02.02005C:\Windows\Microsoft.NET\Framework\v2.0.50727
3.53.52008C:\Windows\Microsoft.NET\Framework\v3.5
4.8.3761.04.5.22010/2012C:\Windows\Microsoft.NET\Framework\v4.0.30319
12.0[25][11]4.5.22013C:\Program Files (x86)\MSBuild\12.0\Bin
14.04.62015C:\Program Files (x86)\MSBuild\14.0\Bin
15.0[26][12]4.72017
16.0[27][13]4.7.22019
17.02022


4. 구성 요소

MSBuild는 Makefile의 매크로와 비슷한 '속성' 및 '항목'을 제공한다. 속성은 정적인 값을 지정하는 데 사용되고, 항목은 일반적으로 작업 실행 대상이 되는 파일이나 폴더 세트를 정의하는 데 사용된다.[5] 와일드카드를 지원하여 항목에 파일을 쉽게 지정할 수 있다.

4. 1. 대상 (Target)

'''대상'''(Target)은 MSBuild가 실행할 작업 집합을 포함한다. MSBuild의 초점은 프로젝트 파일로 MSBuild를 호출할 때 지정된 결과 ''대상''이다. ''프로젝트''는 여러 개의 ''대상'' 항목을 포함할 수 있으며, 각 항목은 순차적으로(그리고 조건부로) 실행된다. 종속 대상은 요청된 대상보다 먼저 실행된다. 현재 ''대상''의 실행 흐름은 Condition, BeforeTargets, AfterTargets, DependsOnTargets 특성을 사용하여 지정할 수 있다. 각 대상은 자체 완료에 필요한 작업을 포함할 수 있다. 대상은 일반적으로 파일, 파일 집합 또는 디렉토리에 대해 실행되는 작업이다.[14]

4. 2. 작업 (Task)

작업(Task)은 대상을 완료하기 위해 실행되는 명령이다. 빌드 프로세스 중에 임의의 수의 작업을 그룹화하고 실행하는 데 사용된다. 작업은 일반적으로 `Task` 클래스를 상속하거나 `ITask` 인터페이스를 구현하는 클래스로 .NET 어셈블리에 구현된다.[14] 다수의 기본적인 작업이 .NET Framework의 일부로 제공되며, 커뮤니티에서 개발한 많은 작업도 자유롭게 이용 가능하다. 작업의 예로는 파일 복사, 디렉토리 생성, XML 구문 분석 등이 있다.

4. 3. 속성 (Property) 및 항목 (Item)

MSBuild는 Makefile의 매크로와 개념적으로 유사한 ''속성'' 및 ''항목''을 제공한다. 속성은 정적인 값을 지정하는 데 사용되는 반면, 항목은 일반적으로 작업 실행 대상이 되는 파일 또는 폴더 세트를 정의하는 데 사용된다.[5] 와일드카드 지원을 통해 항목에 파일을 쉽게 지정할 수 있다.

5. 다중 타겟팅

MSBuild는 지원되는 원하는 .NET Framework 버전에 대해 프로젝트를 빌드할 수 있는 "다중 타겟팅" 기능을 제공한다. 그러나 프로젝트의 주어진 빌드는 한 번에 하나의 프레임워크 버전만을 대상으로 할 수 있다.[6]

6. NMAKE와의 관계

MSBuild는 NMAKE 도구의 기능적인 후계자이다. Visual Studio는 이전 버전의 Visual Studio에서 생성된 프로젝트나 워크스페이스를 VCBuild 또는 MSBuild의 프로젝트나 솔루션으로 변환하는 기능을 제공한다.[5] 예를 들어, Visual Studio 6에서 생성된 dsp/dsw 파일을 Visual Studio .NET 2002/.NET 2003/2005/2008에서 열면 각각 vcproj/sln 파일로 변환된다. Visual Studio 2010 이후 버전에서는 vcxproj/sln 파일로 변환된다.

7. Team Foundation과의 통합

Visual Studio Team System(현 Azure DevOps Server)은 팀 빌드 기능을 위해 MSBuild에 의존한다. 팀 빌드는 원격 빌드 서버에서 실행될 수 있다.[1]

참조

[1] 웹사이트 Latest release https://github.com/M[...] Microsoft 2022-08-20
[2] 웹사이트 microsoft/msbuild: The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio https://github.com/M[...] Microsoft 2019-07-23
[3] 서적 Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build Microsoft Press
[4] 웹사이트 MSBuild https://docs.microso[...] 2019-07-23
[5] 웹사이트 MSBuild Engine is now Open Source on GitHub https://devblogs.mic[...] Microsoft 2019-07-23
[6] 웹사이트 MSBuild multitargeting overview https://docs.microso[...] 2019-07-23
[7] 웹사이트 Building, Testing, and Deployment http://msdn.microsof[...] Microsoft
[8] 웹사이트 MSBuild: The New Build System for Visual Studio 2005 and Longhorn https://blogs.msdn.m[...] 2018-04-22
[9] 웹사이트 Getting Started with MSBuild https://blogs.msdn.m[...] 2018-04-22
[10] 웹사이트 Standard and custom Toolset configurations https://docs.microso[...] 2019-07-23
[11] 웹사이트 What's new in MSBuild 12.0 https://docs.microso[...] 2019-07-23
[12] 웹사이트 What's new in MSBuild 15 https://docs.microso[...] 2019-07-23
[13] 웹사이트 What's new in MSBuild 16.0 https://docs.microso[...] 2019-07-23
[14] 웹사이트 MSBuild task reference https://docs.microso[...] 2019-07-23
[15] 뉴스 OSに標準付属のMSBuildツールでプロジェクトをビルドするには?:.NET TIPS - @IT https://atmarkit.itm[...]
[16] 문서 VCBuild vs. MSBuild | Microsoft Learn https://learn.micros[...]
[17] 웹인용 Latest release https://github.com/M[...] 마이크로소프트 2021-09-01
[18] 웹인용 microsoft/msbuild: The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio https://github.com/M[...] 마이크로소프트 2019-07-23
[19] 서적 Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build https://archive.org/[...] Microsoft Press
[20] 웹인용 MSBuild https://docs.microso[...] 2019-07-23
[21] 웹인용 Building, Testing, and Deployment http://msdn.microsof[...] Microsoft
[22] 웹인용 MSBuild: The New Build System for Visual Studio 2005 and Longhorn https://blogs.msdn.m[...] 2018-04-22
[23] 웹인용 Getting Started with MSBuild https://blogs.msdn.m[...] 2018-04-22
[24] 웹인용 Standard and custom Toolset configurations https://docs.microso[...] 2019-07-23
[25] 웹인용 What's new in MSBuild 12.0 https://docs.microso[...] 2019-07-23
[26] 웹인용 What's new in MSBuild 15 https://docs.microso[...] 2019-07-23
[27] 웹인용 What's new in MSBuild 16.0 https://docs.microso[...] 2019-07-23



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com