MSBuild 명령줄 참조

MSBuild.exe는 지정된 프로젝트나 솔루션 파일을 지정된 옵션을 사용하여 빌드합니다.

MSBuild.exe [Switches] [ProjectFile]

인수

인수

설명

ProjectFile

지정된 대상을 프로젝트 파일에 빌드합니다. 프로젝트 파일을 지정하지 않으면 MSBuild에서는 현재 작업 디렉터리에서 "proj"로 끝나는 파일 이름 확장명을 찾아 이 파일을 사용합니다. 이 인수에는 Visual Studio 2005 솔루션 파일도 지정할 수 있습니다.

스위치

스위치

설명

/help

사용 정보를 표시합니다. /? 또는 /h도 사용할 수 있습니다. 예를 들면 다음과 같습니다.

Msbuild.exe /?

/nologo

시작 배너와 저작권 메시지를 숨깁니다.

/version

버전 정보만 표시합니다. /ver도 사용할 수 있습니다.

@file

텍스트 파일의 명령줄 설정을 삽입합니다. 각 지시 파일을 개별적으로 지정합니다. 자세한 내용은 MSBuild 지시 파일을 참조하십시오.

/noautoresponse

MSBuild.rsp 파일을 자동으로 포함하지 않습니다. /noautorsp도 사용할 수 있습니다.

/target:targets

이 프로젝트에서 이러한 대상을 빌드합니다. 여러 대상을 세미콜론이나 쉼표로 구분하거나 각 대상을 따로 지정합니다. /t도 사용할 수 있습니다. 예를 들면 다음과 같습니다.

/target:Resources;Compile

/property:name=value

이러한 프로젝트 수준 속성을 설정하거나 재정의합니다. 여기서 name은 속성 이름이고 value는 속성 값입니다. 여러 속성을 세미콜론이나 쉼표로 구분하거나 각 속성을 따로 지정합니다. /p도 사용할 수 있습니다. 예를 들면 다음과 같습니다.

/property:WarningLevel=2;OutputDir=bin\Debug

/logger:logger

MSBuild의 이벤트를 로깅하는 데 사용할 로거를 지정합니다. 여러 로거를 지정하려면 각 로거를 개별적으로 지정합니다.

로거 구문은 다음과 같습니다.

[LoggerClass,]LoggerAssembly[;LoggerParameters]

LoggerClass 구문은 다음과 같습니다.

[PartialOrFullNamespace.]LoggerClassName

참고참고
어셈블리에 로거가 하나만 있는 경우 로거 클래스를 지정할 필요가 없습니다.

LoggerAssembly 구문은 다음과 같습니다.

{AssemblyName[,StrongName] | AssemblyFile}

로거 매개 변수는 선택적이며, 입력한 대로 로거에 전달됩니다. 예를 들면 다음과 같습니다.

/logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML

/distributedlogger:<central logger>*<forwarding logger>

이 로거를 사용하여 MSBuild의 이벤트를 로깅합니다. 여러 로거를 지정하려면 각 로거를 개별적으로 지정합니다. 약식 표현은 /dl입니다.

<logger> 구문은 다음과 같습니다.

[<logger class>,]<logger assembly>[;<logger parameters>]

<logger class> 구문은 다음과 같습니다.

[<partial or full namespace>.]<logger class name>

<logger assembly> 구문은 다음과 같습니다. {<assembly name>[,<strong name>] | <assembly file>}

<logger parameters>는 선택적이며, 입력한 그대로 로거에 전달됩니다. 약식 표현은 /l입니다.

예: /dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll

/consoleloggerparameters:parameters

콘솔 로거에 전달할 매개 변수를 지정합니다. /clp도 사용할 수 있습니다. 사용 가능한 매개 변수는 다음과 같습니다.

  • PerformanceSummary: 작업, 대상 및 프로젝트에 사용된 시간을 표시합니다.

  • NoSummary: 빌드 종료 시 표시되는 오류 및 경고 요약을 숨깁니다.

  • NoItemAndPropertyList: 각 프로젝트 빌드 시작 시 diagnostic의 자세한 정도로 표시되는 항목 및 속성 목록을 숨깁니다.

/verbosity:level

빌드 로그에 이러한 양의 정보를 표시합니다. 개별 로거는 자세한 정도에 따라 이벤트를 표시합니다. 자세한 정도 설정을 무시하도록 로거를 구성할 수도 있습니다.

사용 가능한 자세한 정도는 q[uiet], m[inimal], n[ormal], d[etailed]diag[nostic]입니다. /v도 사용할 수 있습니다. 예를 들면 다음과 같습니다.

/verbosity:quiet

/noconsolelogger

기본 콘솔 로거를 사용하지 않고 로그 이벤트를 콘솔에 로깅하지 않습니다. /noconlog도 사용할 수 있습니다.

/validate:schema

프로젝트 파일의 유효성을 검사하고, 유효성 검사가 성공하면 프로젝트를 빌드합니다.

schema를 지정하지 않은 경우, 기본 스키마에 대해 프로젝트의 유효성을 검사합니다.

schema를 지정한 경우, 지정한 스키마에 대해 프로젝트의 유효성을 검사합니다.

/maxcpucount:number

빌드와 관련된 작업자 프로세스의 수를 지정합니다. 예를 들면 C:\Windows\WinFX\v3.5>msbuild.exe *.proj /maxcpucount:3과 같습니다. 이 예제에서는 세 개의 MSBuild.exe 프로세스를 사용하여 프로젝트를 빌드하도록 MSBuild에 지시하므로 세 개의 프로젝트를 병렬로 빌드할 수 있습니다. /m도 사용할 수 있습니다.

/ignoreprojectextensions:<extensions>

빌드할 프로젝트 파일이 결정될 때 무시할 확장명 목록입니다. 세미콜론이나 콜론을 사용하면 여러 확장명을 구분할 수 있습니다 약식 표현은 /ignore입니다. 예를 들면 /ignoreprojectextensions:.vcproj,.sln과 같습니다.

/fileLogger

현재 디렉터리의 단일 파일("msbuild.log")에 빌드 출력을 로깅합니다. fileLogger의 파일 위치 및 기타 매개 변수는 "/fileLoggerParameters" 스위치를 추가하여 지정할 수 있습니다. 약식 표현은 /fl입니다.

/distributedFileLogger

MSBuild 노드마다 하나씩 있는 여러 로그 파일에 빌드 출력을 로깅합니다. 이러한 파일의 최초 위치는 현재 디렉터리이고, 기본 이름은 "MSBuild<nodeid>.log"입니다. fileLogger의 파일 위치 및 기타 매개 변수는 "/fileLoggerParameters" 스위치를 추가하여 지정할 수 있습니다.

fileLoggerParameters 스위치를 사용하여 로그 파일 이름을 설정하면 분산 로거에서 fileName을 템플릿으로 사용하고 이 fileName에 노드 ID를 추가하여 각 노드에 대한 로그 파일을 만듭니다.

/fileloggerparameters:<parameters>

파일 로거 및 분산 파일 로거의 매개 변수를 지정합니다. 약식 표현은 /flp입니다.

로거를 식별하는 숫자가 있는 매개 변수 다음에 최대 10개의 파일 로거를 사용할 수 있습니다. 예를 들어 경고 및 오류에 대한 개별 로그 파일을 생성하려면 /flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly를 사용합니다.

다음과 같은 매개 변수를 사용할 수 있습니다.

LogFile - 빌드 로그를 기록할 로그 파일의 경로입니다. 분산 파일 로거에서는 이 경로를 해당 로그 파일 이름의 접두사로 사용합니다.

Append - 빌드 로그가 로그 파일에 추가되는지 아니면 로그 파일을 덮어쓰는지를 결정합니다. 이 스위치를 설정하면 빌드 로그가 로그 파일에 추가됩니다. 이 스위치를 설정하지 않으면 기존 로그 파일의 내용이 덮어쓰여집니다. 기본값은 로그 파일을 덮어쓰는 것입니다.

Verbosity - 기본 자세한 정도 설정을 재정의합니다.

Encoding - 파일에 대한 인코딩(예: UTF-80)을 지원합니다.

또한 콘솔 로거 매개 변수를 사용할 수도 있습니다. 예를 들면 /fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8과 같습니다.

/toolsversion:version

프로젝트를 빌드하는 데 사용할 도구 집합의 버전을 지정합니다. 이 명령을 사용하면 Project 요소(MSBuild)에 지정된 것과 다른 버전을 사용하여 프로젝트를 빌드할 수 있습니다. 예를 들면 다음과 같습니다.

C:\Windows\WinFX\v3.5>msbuild.exe *.proj /ToolsVersion:3.5 /p:Configuration=Debug

유효한 version 값은 2.0, 3.0 및 3.5입니다. 도구 집합에 대한 자세한 내용은 특정 버전의 .NET Framework용으로 빌드을 참조하십시오.

/nodeReuse:<parameters>

MSBuild 노드를 다시 사용할 수 있게 하거나 다시 사용할 수 없게 합니다. 매개 변수는 다음과 같습니다.

True - 빌드가 완료된 후에도 노드가 남아 있고 이후의 빌드에서 다시 사용됩니다.

False - 빌드가 완료되면 노드가 제거됩니다. 약식 표현은 /nr입니다. 예를 들면 /nr:true와 같습니다.

설명

매개 변수를 기본 콘솔 로거에 전달하려면 먼저 기본 콘솔 로거를 /noconsolelogger로 사용할 수 없도록 한 다음 /logger 구문에 지정합니다. 예를 들어, 다음 명령줄을 사용하면 일반적으로 진단의 자세한 정도에서만 나타나는 성능 요약을 표시할 수 있습니다.

msbuild myproject.csproj /noconsolelogger /l:ConsoleLogger,Microsoft.Build.Engine.dll;performancesummary

예제

다음 예제에서는 MyProject.proj 프로젝트의 rebuild 대상을 빌드합니다.

MSBuild.exe MyProject.proj /t:rebuild

MSBuild.exe를 사용하여 더 복잡한 빌드를 수행할 수 있습니다. 예를 들어, 솔루션에서 특정 프로젝트의 특정 대상을 빌드할 수도 있습니다. 다음 예제에서는 NotInSolutionFolder 프로젝트를 다시 빌드하고 NewFolder 솔루션 폴더에 있는 InSolutionFolder 프로젝트를 정리합니다.

msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean

참고 항목

기타 리소스

MSBuild 참조