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도 사용할 수 있습니다. 사용 가능한 매개 변수는 다음과 같습니다.
|
/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