다음을 통해 공유


MSBuild@1 - MSBuild v1 작업

MSBuild를 사용하여 빌드하려면 이 작업을 사용합니다.

비고

MSBuild에 대한 자세한 내용은 MSBuild에서 프로젝트를 빌드하는 방법을 참조하세요.

구문론

# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.

입력

solution - 프로젝트
string; 필수 사항입니다. 기본값은 **/*.sln입니다.

여러 프로젝트를 빌드하려면 검색 조건을 지정합니다. 단일 폴더 와일드카드(*) 및 재귀 와일드카드(**)를 사용할 수 있습니다. 예를 들어 **.*proj 모든 하위 디렉터리의 모든 MSBuild 프로젝트(.*proj) 파일을 검색합니다.

지정한 프로젝트가 이 빌드 파이프라인에서 다운로드되었는지 확인합니다. 리포지토리 탭에서 다음을 수행합니다.

  • TFVC를 사용하는 경우 프로젝트가 리포지토리 탭의 매핑 중 하나의 자식인지 확인합니다.
  • Git을 사용하는 경우 프로젝트 또는 프로젝트가 빌드 중인 분기의 Git 리포지토리에 있는지 확인합니다.

팁 (조언)

솔루션을 빌드하는 경우 MSBuild 작업 대신 Visual Studio 빌드 작업 사용하는 것이 좋습니다.

MSBuild와 Visual Studio 빌드의 차이점에 대한 자세한 내용은 Visual Studio 빌드와 MSBuild.exe 빌드를 참조하세요.


MSBuildmsbuildLocationMethod -
string; 허용되는 값: version, location(위치 지정). 기본값은 version입니다.


MSBuild 버전msbuildVersion -
string; 선택 사항. msbuildLocationMethod = version때 사용합니다. 허용되는 값은 latest, 17.0(MSBuild 17.0), 16.0(MSBuild 16.0), 15.0(MSBuild 15.0), 14.0(MSBuild 14.0), 12.0(MSBuild 12.0), 4.0(MSBuild 4.0)입니다. 기본값은 latest입니다.

기본 버전을 찾을 수 없는 경우 찾은 최신 버전이 대신 사용됩니다. macOS 에이전트에서 버전이 xbuild미만인 경우 15.0(Mono)가 사용됩니다.


MSBuild 아키텍처msbuildArchitecture -
string; 선택 사항. msbuildLocationMethod = version때 사용합니다. 허용되는 값: x86(MSBuild x86), x64(MSBuild x64). 기본값은 x86입니다.

실행할 MSBuild 아키텍처(x86, x64)를 제공합니다.


MSBuild대한 msbuildLocation - 경로
string; 선택 사항. msbuildLocationMethod = location때 사용합니다.

MSBuild에 대한 경로를 제공합니다.


platform - 플랫폼
string;

팁 (조언)

  • 솔루션 대신 MSBuild 프로젝트(.*proj) 파일을 대상으로 하는 경우 AnyCPU 지정합니다(공백 없음).
  • 변수 탭에서 BuildPlatform 같은 빌드 변수를 선언하고(큐 시간에 Allow 선택) 여기에서 $(BuildPlatform)참조합니다. 이렇게 하면 빌드를 큐에 대기할 때 플랫폼을 수정하고 여러 구성을 빌드할 수 있습니다.

configuration - 구성
string;

팁 (조언)

변수 탭에서 BuildConfiguration 같은 빌드 변수를 선언하고(큐 시간에 Allow 선택) 여기에서 $(BuildConfiguration)참조합니다. 이렇게 하면 빌드를 큐에 대기할 때 플랫폼을 수정하고 여러 구성을 빌드할 수 있습니다.


MSBuild 인수msbuildArguments -
string;

MSBuild(Windows) 및 xbuild(macOS)에 전달되는 추가 인수를 지정합니다.


clean - 정리
boolean; 기본값은 false입니다.

증분 빌드로 만들려면 False 설정합니다. 이 설정은 특히 코드베이스가 큰 경우 빌드 시간을 줄일 수 있습니다. Clean 리포지토리를 False설정하지 않는 한 이 옵션은 실제로 적용되지 않습니다. 코드 프로젝트의 모든 코드를 다시 빌드하려면 True 설정합니다. 이는 MSBuild /target:clean 인수와 동일합니다. 자세한 내용은 리포지토리 옵션 참조하세요.


병렬빌드 maximumCpuCount -
boolean; 기본값은 false입니다.

MSBuild 대상 구성이 빌드와 병렬로 호환되는 경우 이 입력을 확인하여 msBuild에 /m 스위치를 전달할 수 있습니다(Windows에만 해당). 대상 구성이 빌드와 병렬로 호환되지 않는 경우 이 옵션을 선택하면 빌드에서 file-in-use 오류가 발생하거나 간헐적이거나 일관되지 않은 빌드 오류가 발생할 수 있습니다.


NuGet 패키지복원 restoreNugetPackages -
boolean; 기본값은 false입니다.

이 옵션은 더 이상 사용되지 않습니다. NuGet 패키지를 복원하려면 빌드 전에 NuGet 작업을 추가합니다.


logProjectEvents - 레코드 프로젝트 세부 정보
boolean; 기본값은 false입니다.

필요에 따라 각 프로젝트에 대한 타임라인 세부 정보를 기록합니다(Windows에만 해당).


로그 파일만들기 createLogFile -
boolean; 기본값은 false입니다.

필요에 따라 로그 파일을 만듭니다(Windows에만 해당).


로그 파일 세부 정보 표시logFileVerbosity -
string; 선택 사항. createLogFile = true때 사용합니다. 허용되는 값: quiet, minimal, normal, detailed, diagnostic. 기본값은 normal입니다.

로그 파일 세부 정보를 지정합니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성참조하세요.

출력 변수

없음.

비고

Visual Studio 빌드 작업 또는 MSBuild 작업을 사용해야 하나요?

솔루션을 빌드하는 경우 대부분의 경우 Visual Studio Build 작업사용해야 합니다. 이 작업은 자동으로 다음을 수행합니다.

  • /p:VisualStudioVersion 속성을 설정합니다. 이로 인해 MSBuild는 빌드 성공 가능성을 높이는 특정 대상 집합을 사용해야 합니다.
  • MSBuild 버전 인수를 지정합니다.

경우에 따라 MSBuild 작업을 사용해야 할 수 있습니다. 예를 들어 솔루션과 별도로 코드 프로젝트를 빌드하는 경우 사용해야 합니다.

MSBuild에 대한 자세한 내용은 어디에서 확인할 수 있나요?

MSBuild 참조

MSBuild 명령줄 참조

여러 플랫폼에 대해 여러 구성을 빌드하려면 어떻게 해야 하나요?

  1. 변수 탭에서 구성 및 플랫폼에 대해 정의된 변수가 있는지 확인합니다. 여러 값을 지정하려면 쉼표로 구분합니다. 다음은 그 예입니다.

    • .NET 앱의 경우 디버그 및 릴리스 값으로 BuildConfiguration 지정하고 CPU 값이 있는 BuildPlatform 지정할 수 있습니다.
    • C++ 앱의 경우 디버그 및 릴리스 값으로 BuildConfiguration 지정할 수 있으며 x86 및 x64 값으로 BuildPlatform 지정할 수 있습니다.
  2. 옵션 탭에서 MultiConfiguration 선택하고 쉼표로 구분된 Multipliers지정합니다. 예를 들어 BuildConfiguration, BuildPlatform 사용 가능한 경우 여러 에이전트에 작업을 병렬로 배포하려면 Parallel 선택합니다(값의 각 조합에 대해 하나씩).

  3. 빌드 탭에서 이 단계를 선택하고 PlatformConfiguration 인수를 지정합니다. 다음은 그 예입니다.

    • 플랫폼: $(BuildPlatform)
    • 구성: $(BuildConfiguration)

TFSBuild.proj 파일을 빌드할 수 있나요?

TFSBuild.proj 파일을 빌드할 수 없습니다. 이러한 종류의 파일은 TFS 2005TFS 2008의해 생성됩니다. 이러한 파일에는 태스크가 포함되며 대상은 XAML 빌드를 사용하는 경우에만 지원됩니다.

문제 해결

이 섹션에서는 사용자가 MSBuild 작업을 사용할 때 발생할 수 있는 일반적인 문제에 대한 문제 해결 팁을 제공합니다.

다음 오류로 빌드가 실패했습니다. MSBuild를 실행하는 동안 내부 오류가 발생했습니다.

가능한 원인
  • MSBuild 버전을 변경합니다.
  • 타사 확장 관련 문제입니다.
  • 빌드 에이전트에서 어셈블리가 누락될 수 있는 Visual Studio에 대한 새 업데이트입니다.
  • 필요한 NuGet 패키지 중 일부를 이동하거나 삭제했습니다.
제안 문제 해결
진단과 함께 파이프라인을 실행하여 자세한 로그 검색

문제를 진단하는 데 사용할 수 있는 옵션 중 하나는 생성된 로그를 살펴보는 것입니다. 파이프라인 실행 요약에서 적절한 작업 및 작업을 선택하여 파이프라인 로그를 볼 수 있습니다.

파이프라인 실행 로그를 가져와 문제를 진단하려면

사용자 지정된 자세한 정보 표시 로그를 설정 및 다운로드하여 문제 해결을 지원할 수도 있습니다.

파이프라인 진단 로그 외에도 문제를 디버그하고 해결하는 데 도움이 되는 추가 정보가 포함된 이러한 다른 유형의 로그를 확인할 수도 있습니다.

오류를 로컬로 재현해 보세요.

호스트된 빌드 에이전트를 사용하는 경우 오류를 로컬로 재현하려고 할 수 있습니다. 이렇게 하면 실패가 빌드 에이전트의 결과인지 또는 빌드 작업의 결과인지를 좁히는 데 도움이 됩니다.

동일한 인수를 사용하여 로컬 컴퓨터에서 동일한 MSBuild 명령을 실행합니다. 참조를 MSBuild 명령 확인하세요.

팁 (조언)

로컬 컴퓨터에서 문제를 재현할 수 있는 경우 다음 단계는 MSBuild 문제를 조사하는 것입니다.

Microsoft 호스트 에이전트 대해 자세히 알아봅니다.

자체 호스팅 에이전트를 설치하고 빌드 작업을 실행하려면 다음을 수행합니다.

그 밖에 무엇을 할 수 있나요?

일부 MSBuild 오류는 Visual Studio의 변경으로 인해 발생하므로 Visual Studio 개발자 커뮤니티 검색하여 이 문제가 보고되었는지 확인할 수 있습니다. 또한 질문, 제안 및 피드백을 환영합니다.

요구 사항

요구 사항 설명
파이프라인 유형 YAML, 클래식 빌드
다음에서 실행 에이전트, DeploymentGroup
요구 자체 호스팅 에이전트에는 다음 요구 사항과 일치하는 기능이 있어야 msbuild를 사용합니다.
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 어느 것이든
settable 변수 어느 것이든
에이전트 버전 1.95.0 이상
작업 범주 빌드

참고하십시오

  • Visual Studio 빌드 작업