다음을 통해 공유


일반적인 MSBuild 프로젝트 속성

모든 Visual Studio 프로젝트에는 프로젝트 형식과 상관없이 일반적으로 사용되거나 자주 사용되는 특정 MSBuild 속성이 있습니다. 다음은 일반적인 속성과 자주 사용되는 속성의 목록입니다.

일반적인 속성 및 매개 변수 목록

속성 또는 매개 변수 이름

설명

AdditionalLibPaths

컴파일러에서 참조 어셈블리를 조회해야 하는 추가 폴더를 지정합니다.

AddModules

컴파일러에서 지정된 파일의 모든 형식 정보를 컴파일하고 있는 프로젝트에 사용할 수 있도록 합니다. 이 속성은 /addModules 컴파일러 스위치와 같습니다.

ALToolPath

AL.exe를 찾을 수 있는 경로입니다. 이 속성은 다른 버전의 AL.exe를 사용하기 위해 현재 버전의 AL.exe를 재정의합니다.

ApplicationIcon

Win32 아이콘으로 포함하기 위해 컴파일러에 전달할 .ico 아이콘 파일입니다. 이 속성은 /win32icon 컴파일러 스위치와 같습니다.

ApplicationManifest

외부 UAC(사용자 계정 컨트롤) 매니페스트 정보를 생성하는 데 사용되는 파일의 경로를 지정합니다. Windows Vista를 대상으로 하는 Visual Studio 프로젝트에만 적용됩니다.

대부분의 경우 매니페스트는 포함되어 있지만 등록이 필요 없는 COM 또는 ClickOnce 배포를 사용할 경우 매니페스트가 응용 프로그램 어셈블리와 함께 설치되는 외부 파일일 수 있습니다. 자세한 내용은 이 항목에서 NoWin32Manifest 속성을 참조하십시오.

AssemblySearchPaths

빌드 시간 참조 어셈블리 확인 동안 검색할 위치의 목록입니다. 앞에 있는 경로가 뒤에 있는 경로보다 우선하므로 이 목록에 경로가 표시되는 순서는 중요합니다.

AssemblyName

프로젝트가 빌드된 후의 마지막 출력 어셈블리 이름입니다.

BaseAddress

기본 출력 어셈블리의 기준 주소를 지정합니다. 이 속성은 /baseaddress 컴파일러 스위치와 같습니다.

BaseOutputPath

출력 파일의 기본 경로를 지정합니다. 설정되면 MSBuild에서 OutputPath = $(BaseOutputPath)\$(Configuration)\를 사용합니다. 예를 들면 <BaseOutputPath>c:\xyz\bin\</BaseOutputPath>와 같습니다.

BaseIntermediateOutputPath

출력 파일의 중간 경로를 지정합니다. 예를 들면 <BaseIntermediateOutputPath>c:\xyz\obj\</BaseIntermediateOutputPath>와 같습니다.

BuildInParallel

다중 프로세서 MSBuild가 사용될 때 프로젝트 참조를 병렬로 빌드 또는 정리할지 여부를 나타내는 부울 값입니다. 기본값은 true이며, 시스템에 다중 핵심 또는 프로세서가 있을 경우 프로젝트가 병렬로 빌드됨을 나타냅니다.

BuildProjectReferences

MSBuild에서 프로젝트 참조를 빌드할지 여부를 나타내는 부울 값입니다. Visual Studio IDE(통합 개발 환경)에서 프로젝트를 빌드하는 경우 false로, 그렇지 않으면 true로 설정합니다.

BaseIntermediateOutputPath

모든 구성 관련 중간 출력 폴더가 만들어지는 최상위 폴더입니다. 기본값은 obj\입니다.

CleanFile

"정리 캐시"로 사용할 파일의 이름입니다. 정리 캐시는 생성된 파일 중 정리 작업 동안 삭제할 파일의 목록입니다. 이 파일은 빌드 프로세스에 의해 중간 출력 경로에 저장됩니다.

이 속성은 경로 정보가 없는 파일 이름만 지정합니다.

CodePage

컴파일할 때 모든 소스 코드 파일에 사용할 코드 페이지를 지정합니다. 이 속성은 /codepage 컴파일러 스위치와 같습니다.

CompilerResponseFile

컴파일러 작업에 전달할 수 있는 선택적 응답 파일입니다.

구성

빌드하고 있는 구성으로, "디버그" 또는 "릴리스"입니다.

CscToolPath

Visual C# 컴파일러인 csc.exe의 경로입니다.

CustomBeforeMicrosoftCommonTargets

공통 대상을 가져오기 전에 자동으로 가져올 프로젝트 파일 또는 대상 파일의 이름입니다.

DebugSymbols

빌드 시 기호의 생성 여부를 나타내는 부울 값입니다.

명령줄에서 /p:DebugSymbols=false를 설정하면 프로그램 데이터베이스(.pdb) 기호 파일이 생성되지 않습니다.

DefineConstants

조건부 컴파일러 상수를 정의합니다. 기호/값 쌍은 세미콜론으로 구분되고 다음 구문을 사용하여 지정됩니다.

symbol1 = value1 ; symbol2 = value2

이 속성은 /define 컴파일러 스위치와 같습니다.

DefineDebug

DEBUG 상수를 정의할지 여부를 나타내는 부울 값입니다.

DefineTrace

TRACE 상수를 정의할지 여부를 나타내는 부울 값입니다.

DebugType

생성할 디버그 정보의 수준을 정의합니다. 유효한 값은 "full", "pdbonly" 및 "none"입니다.

DelaySign

어셈블리에 전체 서명하는 대신 어셈블리 서명을 연기할지 여부를 나타내는 부울 값입니다.

DisabledWarnings

지정한 경고를 표시하지 않습니다. 경고 식별자의 숫자 부분만 지정해야 합니다. 경고가 여러 개인 경우 세미콜론으로 구분할 수 있습니다. 이 매개 변수는 vbc.exe 컴파일러의 /nowarn 스위치에 해당합니다.

DisableFastUpToDateCheck

Visual Studio에만 적용되는 부울 값입니다. Visual Studio 빌드 관리자는 FastUpToDateCheck라는 프로세스를 사용하여 프로젝트를 최신 상태로 다시 빌드해야 하는지 여부를 결정합니다. 이 프로세스는 이를 위해 MSBuild를 사용하여 것보다 빠릅니다. DisableFastUpToDateCheck 속성을 true로 설정하면 Visual Studio 빌드 관리자를 사용하지 않고 대신 MSBuild를 사용하여 프로젝트가 최신 상태인지 여부를 확인할 수 있습니다.

DocumentationFile

XML 문서 파일로 생성된 파일의 이름입니다. 이 이름에는 파일 이름만 포함되고 경로 정보는 포함되지 않습니다.

ErrorReport

컴파일러에서 내부 컴파일러 오류를 보고하는 방식을 지정합니다. 유효한 값은 "prompt", "send" 또는 "none"입니다. 이 속성은 /errorreport 컴파일러 스위치와 같습니다.

ExcludeDeploymentUrl

GenerateDeploymentManifest 작업에서는 프로젝트 파일에 다음 요소가 하나라도 포함된 경우 배포 매니페스트에 deploymentProvider 태그를 추가합니다.

  • UpdateUrl

  • InstallUrl

  • PublishUrl

그러나 ExcludeDeploymentUrl을 사용하면 위 URL 중 하나가 지정된 경우에도 deploymentProvider 태그가 추가되지 않습니다. 이렇게 하려면 프로젝트 파일에 다음 속성을 추가합니다.

<ExcludeDeploymentUrl>true</ExcludeDeploymentUrl>

참고참고
ExcludeDeploymentUrl은 Visual Studio IDE에서 노출되지 않으며 프로젝트 파일을 편집하여 수동으로만 설정할 수 있습니다. 이 속성을 설정해도 Visual Studio 내에서는 게시에 영향을 주지 않습니다. 즉, PublishUrl에 지정된 URL에 deploymentProvider 태그가 계속 추가됩니다.

FileAlignment

출력 파일에서 섹션을 배치할 위치를 바이트로 지정합니다. 유효한 값은 512, 1024, 2048, 4096, 8192입니다. 이 속성은 /filealignment 컴파일러 스위치와 같습니다.

FrameworkPathOverride

mscorlib.dll 및 microsoft.visualbasic.dll의 위치를 지정합니다. 이 매개 변수는 vbc.exe 컴파일러의 /sdkpath 스위치와 같습니다.

GenerateDocumentation

빌드 시 문서의 생성 여부를 나타내는 부울 매개 변수입니다. true이면 문서 정보를 생성하여 이 정보를 빌드 작업에서 만든 실행 파일이나 라이브러리의 이름과 함께 .xml 파일에 배치합니다.

IntermediateOutputPath

경로가 지정되지 않은 경우 BaseIntermediateOutputPath에서 파생된 것과 같은 전체 중간 출력 경로입니다. 예를 들어, \obj\debug\와 같습니다. 이 속성이 재정의되면 BaseIntermediateOutputPath를 설정해도 아무런 효과가 없습니다.

KeyContainerName

강력한 이름 키 컨테이너의 이름입니다.

KeyOriginatorFile

강력한 이름 키 파일의 이름입니다.

NoWin32Manifest

컴파일러에서 출력 어셈블리에 기본 Win32 매니페스트를 생성하는지 여부를 결정합니다. 기본값인 false를 설정하면 기본 Win32 매니페스트가 모든 응용 프로그램에 대해 생성됩니다. 이 속성은 vbc.exe의 /nowin32manifest 컴파일러 스위치와 같습니다.

ModuleAssemblyName

컴파일된 모듈이 통합되어야 하는 어셈블리의 이름입니다. 이 속성은 /moduleassemblyname 컴파일러 스위치와 같습니다.

NoLogo

컴파일러 로고를 해제할지 여부를 나타내는 부울 값입니다. 이 속성은 /nologo 컴파일러 스위치와 같습니다.

NoStdLib

표준 라이브러리(mscorlib.dll)를 참조하지 않을지 여부를 나타내는 부울 값입니다. 기본값은 false입니다.

NoVBRuntimeReference

Visual Basic 런타임(Microsoft.VisualBasic.dll)이 프로젝트에 참조로 포함되어야 하는지 여부를 나타내는 부울 값입니다.

NoWin32Manifest

응용 프로그램의 실행 파일에 UAC(사용자 계정 컨트롤) 매니페스트 정보를 포함할지 여부를 나타내는 부울 값입니다. Windows Vista를 대상으로 하는 Visual Studio 프로젝트에만 적용됩니다. ClickOnce 및 등록이 필요 없는 COM을 사용하여 배포하는 프로젝트에서는 이 요소가 무시됩니다. False(기본값)는 UAC(사용자 계정 컨트롤) 매니페스트 정보를 응용 프로그램의 실행 파일에 포함하도록 지정합니다. True는 UAC 매니페스트 정보가 포함되지 않음을 지정합니다.

이 속성은 Windows Vista를 대상으로 하는 Visual Studio 프로젝트에만 적용됩니다. ClickOnce 및 등록이 필요 없는 COM을 사용하여 배포된 프로젝트에서는 이 속성이 무시됩니다.

Visual Studio에서 응용 프로그램의 실행 파일에 매니페스트 정보를 포함하려는 경우에만 NoWin32Manifest를 추가해야 합니다. 이 프로세스를 가상화라고 합니다. 가상화를 사용하려면 다음과 같이 <ApplicationManifest><NoWin32Manifest>를 함께 설정합니다.

  • Visual Basic 프로젝트의 경우 <ApplicationManifest> 노드를 제거합니다. (Visual Basic 프로젝트에서는 <ApplicationManifest> 노드가 있으면 <NoWin32Manifest>가 무시됩니다.

  • Visual C# 프로젝트의 경우 <ApplicationManifest>를 False로, <NoWin32Manifest>를 True로 설정합니다. Visual C# 프로젝트에서는 <ApplicationManifest><NoWin32Manifest>를 재정의합니다.

Optimize

true로 설정하면 컴파일러 최적화를 사용할 수 있는 부울 값입니다. 이 속성은 /optimize 컴파일러 스위치와 같습니다.

OptionCompare

문자열 비교 방법을 지정합니다. 유효한 값은 "binary" 또는 "text"입니다. 이 속성은 vbc.exe의 /optioncompare 컴파일러 스위치와 같습니다.

OptionExplicit

true로 설정하면 소스 코드에서 변수를 명시적으로 선언하도록 요구하는 부울 값입니다. 이 속성은 /optionexplicit 컴파일러 스위치와 같습니다.

OptionInfer

true로 설정되면 변수의 형식 유추를 사용할 수 있는 부울 값입니다. 이 속성은 /optioninfer 컴파일러 스위치와 같습니다.

OptionStrict

true로 설정하면 빌드 작업에서 엄격한 형식 의미를 적용하여 암시적 형식 변환을 제한하도록 하는 부울 값입니다. 이 속성은 vbc.exe 컴파일러의 /optionstrict 스위치와 같습니다.

OutputPath

"bin\Debug" 같이 프로젝트 디렉터리에 상대적인 출력 디렉터리 경로를 지정합니다.

OutputType

출력 파일의 파일 형식을 지정합니다. 이 매개 변수의 값은 다음 중 하나일 수 있습니다.

  • Library. 코드 라이브러리를 만듭니다. 기본값입니다.

  • Exe. 콘솔 응용 프로그램을 만듭니다.

  • Module. 모듈을 만듭니다.

  • Winexe. Windows 기반 프로그램을 만듭니다.

이 속성은 vbc.exe 컴파일러의 /target 스위치와 같습니다.

OverwriteReadOnlyFiles

빌드에서 읽기 전용 파일을 덮어쓸지 아니면 오류를 트리거할지 여부를 나타내는 부울 값입니다.

PdbFile

내보낼 .pdb 파일의 파일 이름입니다. 이 속성은 csc.exe 컴파일러의 /pdb 스위치와 같습니다.

플랫폼

빌드하고 있는 운영 체제입니다. 유효한 값은 "AnyCPU", "x86", "x64" 또는 "Itanium"입니다.

RemoveIntegerChecks

정수 오버플로 오류 검사를 비활성화할지 여부를 나타내는 부울 값입니다. 기본값은 false입니다. 이 속성은 vbc.exe 컴파일러의 /removeintchecks 스위치와 같습니다.

SGenUseProxyTypes

SGen.exe에서 프록시 형식을 생성해야 하는지 여부를 나타내는 부울 값입니다.

SGen 대상은 이 속성을 사용하여 UseProxyTypes 플래그를 설정합니다. 이 속성은 true로 기본적으로 설정되어 있으며 UI를 변경할 필요가 없습니다. 웹 서비스가 아닌 형식의 경우 serialization 어셈블리를 생성하려면 이 속성을 프로젝트 파일에 추가하고 Microsoft.Common.Targets 또는 C#/VB.targets를 가져오기 전에 false로 설정합니다.

SGenToolPath

현재 버전의 SGen.exe가 재정의될 경우 SGen.exe를 구할 수 있는 위치를 나타내는 선택적 도구 경로입니다.

StartupObject

Main 메서드 또는 Sub Main 프로시저가 포함된 클래스나 모듈을 지정합니다. 이 속성은 /main 컴파일러 스위치와 같습니다.

ProcessorArchitecture

어셈블리 참조를 확인할 때 사용되는 프로세서 아키텍처입니다. 유효한 값은 "msil", "x86", "amd64" 또는 "ia64"입니다.

RootNamespace

포함된 리소스의 이름을 지정할 때 사용할 루트 네임스페이스입니다. 이 네임스페이스는 포함된 리소스 매니페스트 이름의 일부입니다.

Satellite_AlgorithmId

위성 어셈블리를 만들 때 사용할 AL.exe 해시 알고리즘의 ID입니다.

Satellite_BaseAddress

CreateSatelliteAssemblies 대상을 사용하여 문화권별 위성 어셈블리를 빌드할 때 사용할 기준 주소입니다.

Satellite_CompanyName

위성 어셈블리를 만들 때 AL.exe에 전달할 회사 이름입니다.

Satellite_Configuration

위성 어셈블리를 만들 때 AL.exe에 전달할 구성 이름입니다.

Satellite_Description

위성 어셈블리를 만들 때 AL.exe에 전달할 설명 텍스트입니다.

Satellite_EvidenceFile

리소스 이름이 "Security.Evidence"인 위성 어셈블리에 지정된 파일을 포함합니다.

Satellite_FileVersion

위성 어셈블리의 File Version 필드에 대한 문자열을 지정합니다.

Satellite_Flags

위성 어셈블리의 Flags 필드에 대한 값을 지정합니다.

Satellite_GenerateFullPaths

빌드 작업에서 오류 메시지에 보고되는 모든 파일에 절대 경로를 사용하도록 합니다.

Satellite_LinkResource

지정한 리소스 파일을 위성 어셈블리에 링크합니다.

Satellite_MainEntryPoint

위성 어셈블리를 만드는 동안 모듈을 실행 파일로 변환할 때 진입점으로 사용할 메서드의 정규화된 이름(즉, class.method)을 지정합니다.

Satellite_ProductName

위성 어셈블리의 Product 필드에 대한 문자열을 지정합니다.

Satellite_ProductVersion

위성 어셈블리의 ProductVersion 필드에 대한 문자열을 지정합니다.

Satellite_TargetType

위성 어셈블리 출력 파일의 파일 형식을 "library", "exe" 또는 "win"으로 지정합니다. 기본값은 "library"입니다.

Satellite_Title

위성 어셈블리의 Title 필드에 대한 문자열을 지정합니다.

Satellite_Trademark

위성 어셈블리의 Trademark 필드에 대한 문자열을 지정합니다.

Satellite_Version

위성 어셈블리의 버전 정보를 지정합니다.

Satellite_Win32Icon

위성 어셈블리에 .ico 아이콘 파일을 삽입합니다.

Satellite_Win32Resource

위성 어셈블리에 Win32 리소스(.res file)를 삽입합니다.

TargetCompactFramework

빌드하고 있는 응용 프로그램을 실행하는 데 필요한 .NET Compact Framework의 버전입니다. 이를 지정하면 다른 경우에는 참조할 수 없는 특정 Framework 어셈블리를 참조할 수 있습니다.

TargetFrameworkVersion

빌드하고 있는 응용 프로그램을 실행하는 데 필요한 .NET Framework의 버전입니다. 이를 지정하면 다른 경우에는 참조할 수 없는 특정 Framework 어셈블리를 참조할 수 있습니다.

TreatWarningsAsErrors

true이면 모든 경고가 오류로 처리되도록 하는 부울 매개 변수입니다. 이 매개 변수는 /nowarn 컴파일러 스위치와 같습니다.

UseHostCompilerIfAvailable

true이면 빌드 작업에서 가능한 경우 in-process 컴파일러 개체를 사용하도록 하는 부울 매개 변수입니다. 이 매개 변수는 Visual Studio에서만 사용됩니다.

Utf8Output

true이면 UTF-8 인코딩을 사용하여 컴파일러 출력을 기록하는 부울 매개 변수입니다. 이 매개 변수는 /utf8Output 컴파일러 스위치와 같습니다.

VbcToolPath

현재 버전의 vbc.exe가 재정의될 경우 다른 vbc.exe가 있는 위치를 나타내는 선택적 경로입니다.

VbcVerbosity

Visual Basic 컴파일러의 출력을 어느 정도로 자세하게 설정할지 지정합니다. 유효한 값은 "Quiet", "Normal"(기본값) 또는 "Verbose"입니다.

WarningsAsErrors

오류로 취급할 경고 목록을 지정합니다. 이 매개 변수는 /warnaserror 컴파일러 스위치와 같습니다.

WarningsNotAsErrors

오류로 취급하지 않을 경고 목록을 지정합니다. 이 매개 변수는 /warnaserror 컴파일러 스위치와 같습니다.

Win32Manifest

최종 어셈블리에 포함해야 하는 매니페스트 파일의 이름입니다. 이 매개 변수는 /win32Manifest 컴파일러 스위치와 같습니다.

Wint32Resource

최종 어셈블리에 포함할 Win32 리소스의 파일 이름입니다. 이 매개 변수는 /win32resource 컴파일러 스위치와 같습니다.

참고 항목

참조

일반적인 MSBuild 프로젝트 항목