일반적인 MSBuild 프로젝트 항목

MSBuild에서 항목은 하나 이상의 파일에 대한 명명된 참조입니다. 항목에는 파일 이름, 경로 및 버전 번호와 같은 메타데이터가 포함됩니다. Visual Studio의 모든 프로젝트 형식에는 공통된 여러 항목이 있습니다. 이러한 항목은 Microsoft.Build.CommonTypes.xsd 파일에 정의되어 있습니다.

이 문서에는 모든 공통 프로젝트 항목이 나와 있습니다.

참고

프로젝트의 어셈블리(관리) 참조를 나타냅니다.

항목 메타데이터 이름 설명
HintPath 선택적 문자열입니다. 어셈블리의 상대 또는 절대 경로입니다.
이름 선택적 문자열입니다. 어셈블리의 표시 이름(예: "System.Windows.Forms")입니다.
FusionName 선택적 문자열입니다. 항목에 단순 또는 강력한 Fusion 이름을 지정합니다.

이 특성이 있으면 어셈블리 파일을 열어 Fusion 이름을 가져올 필요가 없으므로 시간을 절약할 수 있습니다.
SpecificVersion 선택적 부울입니다. Fusion 이름의 버전만 참조할지 여부를 지정합니다.
별칭 선택적 문자열입니다. 참조에 대한 별칭입니다.
Private 선택적 부울입니다. 참조를 출력 폴더에 복사할지 여부를 지정합니다. 이 특성은 Visual Studio IDE에 있는 참조의 로컬 복사 속성과 일치합니다.

COMReference

프로젝트의 COM(비관리) 구성 요소 참조를 나타냅니다. 이 항목은 .NET 프로젝트에만 적용됩니다.

항목 메타데이터 이름 설명
이름 선택적 문자열입니다. 구성 요소의 표시 이름입니다.
GUID 필수 문자열입니다. 구성 요소의 GUID로, {12345678-1234-1234-1234-123456781234} 형식을 갖습니다.
VersionMajor 필수 문자열입니다. 구성 요소 버전 번호의 주 버전 부분입니다. 예를들어 전체 버전 번호가 "5.46"이면 "5"입니다.
VersionMinor 필수 문자열입니다. 구성 요소 버전 번호의 부 버전 부분입니다. 예를들어 전체 버전 번호가 "5.46"이면 "46"입니다.
EmbedInteropTypes 선택적 부울입니다. true인 경우 interop DLL을 생성하지 않고 이 참조의 interop 형식을 어셈블리에 직접 포함합니다.
Lcid 선택적 문자열입니다. 구성 요소의 LocaleID입니다.
WrapperTool 선택적 문자열입니다. 구성 요소에 사용되는 래퍼 도구의 이름입니다. 값은 다음과 같습니다.

1. primary
2. tlbimp
3. primaryortlbimp
4. aximp
Isolated 선택적 부울입니다. 등록이 필요 없는 구성 요소인지 여부를 지정합니다.

COMFileReference

ResolveComReference 대상의 TypeLibFiles 매개 변수에 전달되는 형식 라이브러리 목록을 나타냅니다. 이 항목은 .NET 프로젝트에만 적용됩니다.

항목 메타데이터 이름 설명
WrapperTool 선택적 문자열입니다. 구성 요소에 사용되는 래퍼 도구의 이름입니다. 값은 다음과 같습니다.

1. primary
2. tlbimp
3. primaryortlbimp
4. aximp

NativeReference

네이티브 매니페스트 파일 또는 이러한 파일에 대한 참조를 나타냅니다.

항목 메타데이터 이름 설명
이름 필수 문자열입니다. 매니페스트 파일의 기본 이름입니다.
HintPath 필수 문자열입니다. 매니페스트 파일의 상대 경로입니다.

ProjectReference

다른 프로젝트에 대한 참조를 나타냅니다. ProjectReference 항목은 ResolveProjectReferences 대상에 의해 참조 항목으로 변환되므로 참조의 모든 유효한 메타데이터는 변환 프로세스에서 덮어쓰지 않는 경우 ProjectReference에서 유효할 수 있습니다.

항목 메타데이터 이름 설명
이름 선택적 문자열입니다. 참조의 표시 이름입니다.
GlobalPropertiesToRemove 선택적 string[]입니다. 예를 들어 RuntimeIdentifier;PackOnBuild와 같이 참조된 프로젝트를 빌드할 때 제거할 속성의 이름입니다. 기본적으로 비어 있습니다.
프로젝트 선택적 문자열입니다. 참조의 GUID로, {12345678-1234-1234-1234-123456781234} 형식을 갖습니다.
OutputItemType 선택적 문자열입니다. 대상 출력을 내보낼 항목 종류입니다. 기본값은 없습니다. 참조 메타데이터가 "true"(기본값)로 설정된 경우 대상 출력은 컴파일러에 대한 참조가 됩니다.
ReferenceOutputAssembly 선택적 부울입니다. 로 false설정하면 참조된 프로젝트의 출력을 이 프로젝트의 참조포함하지 않지만 다른 프로젝트가 이 프로젝트 앞에 빌드되도록 합니다. 기본값은 true입니다.
Private 선택적 부울입니다. 참조를 출력 폴더에 복사할지 여부를 지정합니다. 이 특성은 Visual Studio IDE에 있는 참조의 로컬 복사 속성과 일치합니다.
SetConfiguration 선택적 문자열입니다. 참조된 프로젝트의 전역 속성 Configuration(예: Configuration=Release)을 설정합니다.
SetPlatform 선택적 문자열입니다. 참조된 프로젝트의 전역 속성 Platform(예: Platform=AnyCPU)을 설정합니다.
SetTargetFramework 선택적 문자열입니다. 참조된 프로젝트의 전역 속성 TargetFramework(예: TargetFramework=netstandard2.0)를 설정합니다.
SkipGetTargetFrameworkProperties 선택적 부울입니다. true인 경우, 가장 호환성이 높은 TargetFramework 값에 대한 협상 없이 참조된 프로젝트를 빌드합니다. 기본값은 false입니다.
대상 선택적 string[]입니다. 참조된 프로젝트에서 빌드해야 하는 대상의 목록으로, 세미콜론으로 구분됩니다. 기본값은 $(ProjectReferenceBuildTargets)기본값으로, 기본 대상을 나타내는 빈 값입니다. Visual Studio에서 빌드할 때(또는 반대로 MSBuild.exedotnet build) 이를 지정해도 Visual Studio에서 참조된 프로젝트의 기본 대상을 빌드할 수 없습니다.

참고 항목

프로젝트 참조가 작동하는 방식은 .NET Framework와 .NET Core(.NET 5 이상 포함) 간에 차이가 있습니다. .NET Framework 프로젝트에서 프로젝트 참조는 전이적이지 않습니다. 즉, Project1이 Project2를 참조하고 Project2가 Project3을 참조하는 경우 Project1에서 Project3에 대해 코딩할 수 없습니다. 그러나 .NET Core(.NET 5 이상 포함)에서는 프로젝트 참조가 전이적입니다. Project1에서 Project3에 대해 코딩할 수 있습니다.

Compile

컴파일러에 대한 소스 파일을 나타냅니다.

항목 메타데이터 이름 설명
DependentUpon 선택적 문자열입니다. 올바르게 컴파일하기 위해 이 파일이 의존하는 파일을 지정합니다.
AutoGen 선택적 부울입니다. Visual Studio IDE(통합 개발 환경)에서 프로젝트를 위해 해당 파일이 생성되었는지 여부를 나타냅니다.
링크 선택적 문자열입니다. 파일이 물리적으로 프로젝트 파일의 영향 범위 밖에 있을 때 표시할 표기 경로입니다.
표시 선택적 부울입니다. Visual Studio의 솔루션 탐색기에 파일을 표시할지 여부를 나타냅니다.
CopyToOutputDirectory 선택적 문자열입니다. 출력 디렉터리에 파일을 복사할지 여부를 결정합니다. 값:

1. Never
2. Always
3. PreserveNewest

EmbeddedResource

생성된 어셈블리에 포함될 리소스를 나타냅니다.

항목 메타데이터 이름 설명
DependentUpon 선택적 문자열입니다. 올바르게 컴파일하기 위해 이 파일이 종속되는 파일을 지정합니다.
생성기 선택적 문자열입니다. 이 항목에서 실행되는 파일 생성기의 이름입니다.
LastGenOutput 선택적 문자열입니다. 이 항목에서 실행된 모든 파일 생성기가 만든 파일의 이름입니다.
CustomToolNamespace 선택적 문자열입니다. 이 항목에서 실행되는 모든 파일 생성기가 코드를 만들어야 하는 네임스페이스입니다.
링크 선택적 문자열입니다. 파일이 물리적으로 프로젝트의 영향 범위 밖에 있을 때 이 표기 경로가 표시됩니다.
표시 선택적 부울입니다. Visual Studio의 솔루션 탐색기에 파일을 표시할지 여부를 나타냅니다.
CopyToOutputDirectory 선택적 문자열입니다. 출력 디렉터리에 파일을 복사할지 여부를 결정합니다. 값:

1. Never
2. Always
3. PreserveNewest
LogicalName 필수 문자열입니다. 포함된 리소스의 논리적 이름입니다.

콘텐츠

프로젝트로 컴파일되지 않지만 함께 포함되거나 게시될 수 있는 파일을 나타냅니다.

항목 메타데이터 이름 설명
DependentUpon 선택적 문자열입니다. 올바르게 컴파일하기 위해 이 파일이 의존하는 파일을 지정합니다.
생성기 선택적 문자열입니다. 이 항목에서 실행되는 파일 생성기의 이름입니다.
LastGenOutput 선택적 문자열입니다. 이 항목에서 실행된 모든 파일 생성기가 만든 파일의 이름입니다.
CustomToolNamespace 선택적 문자열입니다. 이 항목에서 실행되는 모든 파일 생성기가 코드를 만들어야 하는 네임스페이스입니다.
링크 선택적 문자열입니다. 파일이 물리적으로 프로젝트의 영향 범위 밖에 있을 때 표시될 표기 경로입니다.
PublishState 필수 문자열입니다. 콘텐츠의 게시 상태로 다음 중 하나입니다.

- Default
- Included
- xcluded
- DataFile
- Prerequisite
IsAssembly 선택적 부울입니다. 파일이 어셈블리인지 여부를 지정합니다.
표시 선택적 부울입니다. Visual Studio의 솔루션 탐색기에 파일을 표시할지 여부를 나타냅니다.
CopyToOutputDirectory 선택적 문자열입니다. 출력 디렉터리에 파일을 복사할지 여부를 결정합니다. 값:

1. Never
2. Always
3. PreserveNewest
TargetPath 선택적 문자열입니다. 파일 이름을 포함한 항목의 출력 경로(구성 및/또는 플랫폼별 출력 디렉터리에 상대적)입니다. 제공된 경우 Link 메타데이터를 적용합니다. TargetPath가 제공되지 않으면 빌드 프로세스 중에 계산됩니다. AssignTargetPath를 참조하세요.

없음

빌드 프로세스에서 역할이 없는 파일을 나타냅니다.

항목 메타데이터 이름 설명
DependentUpon 선택적 문자열입니다. 올바르게 컴파일하기 위해 이 파일이 의존하는 파일을 지정합니다.
생성기 선택적 문자열입니다. 이 항목에서 실행되는 파일 생성기의 이름입니다.
LastGenOutput 선택적 문자열입니다. 이 항목에서 실행된 모든 파일 생성기가 만든 파일의 이름입니다.
CustomToolNamespace 선택적 문자열입니다. 이 항목에서 실행되는 모든 파일 생성기가 코드를 만들어야 하는 네임스페이스입니다.
링크 선택적 문자열입니다. 파일이 물리적으로 프로젝트의 영향 범위 밖에 있을 때 표시될 표기 경로입니다.
표시 선택적 부울입니다. Visual Studio의 솔루션 탐색기에 파일을 표시할지 여부를 나타냅니다.
CopyToOutputDirectory 선택적 문자열입니다. 출력 디렉터리에 파일을 복사할지 여부를 결정합니다. 값:

1. Never
2. Always
3. PreserveNewest

AssemblyMetadata

[AssemblyMetadata(key, value)]로 생성될 어셈블리 특성을 나타냅니다.

항목 메타데이터 이름 설명
포함 AssemblyMetadataAttribute 특성 생성자의 첫 번째 매개 변수(키)가 됩니다.
필수 문자열입니다. AssemblyMetadataAttribute 특성 생성자의 두 번째 매개 변수(값)가 됩니다.

참고

이 항목은 SDK for .NET 5(및 .NET Core) 이상 버전을 사용하는 프로젝트에 적용됩니다.

InternalsVisibleTo

[InternalsVisibleTo(..)] 어셈블리 특성으로 내보낼 어셈블리를 지정합니다.

항목 메타데이터 이름 설명
포함 어셈블리 이름입니다.
선택적 문자열입니다. 어셈블리의 공개 키입니다.

참고

이 항목은 SDK for .NET 5(및 .NET Core) 이상 버전을 사용하는 프로젝트에 적용됩니다.

BaseApplicationManifest

빌드에 대한 기본 애플리케이션 매니페스트를 나타내며 ClickOnce 배포 보안 정보를 포함합니다.

CodeAnalysisImport

가져올 FxCop 프로젝트를 나타냅니다.

가져오기

Visual Basic 컴파일러가 네임스페이스를 가져올 어셈블리를 나타냅니다.

폴더

이 요소는 Visual Studio에서 빈 폴더의 자리 표시자로만 사용됩니다. 폴더가 채워지면 다른 요소로 대체됩니다.

참고 항목