일반적인 MSBuild 프로젝트 항목
MSBuild에서 항목은 하나 이상의 파일에 대한 명명된 참조입니다. 항목에는 파일 이름, 경로 및 버전 번호와 같은 메타데이터가 포함됩니다. Visual Studio의 모든 프로젝트 형식에는 여러 항목의 공통점이 있습니다. 이러한 항목은 Microsoft.Build.CommonTypes.xsd 파일에 정의됩니다.
이 문서에서는 모든 일반적인 프로젝트 항목을 나열합니다.
Reference
프로젝트의 어셈블리(관리되는) 참조를 나타냅니다.
항목 메타데이터 이름 | 묘사 |
---|---|
HintPath | 선택적 문자열입니다. 어셈블리의 상대 또는 절대 경로입니다. |
이름 | 선택적 문자열입니다. 어셈블리의 표시 이름(예: "System.Windows.Forms")입니다. |
FusionName | 선택적 문자열입니다. 항목의 단순하거나 강력한 Fusion 이름을 지정합니다. 이 특성이 있으면 어셈블리 파일을 열어 Fusion 이름을 가져올 필요가 없으므로 시간을 절약할 수 있습니다. |
SpecificVersion | 선택적 부울입니다. Fusion 이름의 버전만 참조해야 하는지 여부를 지정합니다. |
별칭 | 선택적 문자열입니다. 참조에 대한 모든 별칭입니다. |
민간의 | 선택적 부울입니다. 참조를 출력 폴더에 복사할지 여부를 지정합니다. 이 특성은 Visual Studio IDE에 있는 참조의 로컬 복사 속성과 일치합니다. |
COMReference
프로젝트의 COM(관리되지 않는) 구성 요소 참조를 나타냅니다. 이 항목은 .NET 프로젝트에만 적용됩니다.
항목 메타데이터 이름 | 묘사 |
---|---|
이름 | 선택적 문자열입니다. 구성 요소의 표시 이름입니다. |
Guid(Guid) | 필수 문자열입니다. 구성 요소의 GUID({12345678-1234-1234-1234-123456781234}형식)입니다. |
VersionMajor | 필수 문자열입니다. 구성 요소 버전 번호의 주요 부분입니다. 예를 들어 전체 버전 번호가 "5.46"이면 "5"입니다. |
VersionMinor | 필수 문자열입니다. 구성 요소 버전 번호의 부 부분입니다. 예를 들어 전체 버전 번호가 "5.46"인 경우 "46"입니다. |
EmbedInteropTypes | 선택적 부울입니다. true이면 interop DLL을 생성하지 않고 이 참조의 interop 형식을 어셈블리에 직접 포함합니다. |
Lcid | 선택적 문자열입니다. 구성 요소의 LocaleID입니다. |
WrapperTool | 선택적 문자열입니다. 구성 요소에 사용되는 래퍼 도구의 이름입니다. 값은 다음과 같습니다. 1. 기본 2. tlbimp 3. primaryortlbimp 4. aximp |
격리 | 선택적 부울입니다. 구성 요소가 reg-free 구성 요소인지 여부를 지정합니다. |
COMFileReference
TypeLibFiles
대상의 매개 변수에 전달되는 형식 라이브러리 목록을 나타냅니다. 이 항목은 .NET 프로젝트에만 적용됩니다.
항목 메타데이터 이름 | 묘사 |
---|---|
EmbedInteropTypes | 선택적 부울입니다. true이면 interop DLL을 생성하지 않고 이 참조의 interop 형식을 어셈블리에 직접 포함합니다. |
WrapperTool | 선택적 문자열입니다. 구성 요소에 사용되는 래퍼 도구의 이름입니다. 값은 다음과 같습니다. 1. 기본 2. tlbimp 3. primaryortlbimp 4. aximp |
NativeReference
네이티브 매니페스트 파일 또는 이러한 파일에 대한 참조를 나타냅니다.
항목 메타데이터 이름 | 묘사 |
---|---|
이름 | 필수 문자열입니다. 매니페스트 파일의 기본 이름입니다. |
HintPath | 필수 문자열입니다. 매니페스트 파일의 상대 경로입니다. |
ProjectReference
다른 프로젝트에 대한 참조를 나타냅니다.
ProjectReference
항목은 대상에 의해 ResolveProjectReferences
항목으로 변환되므로 변환 프로세스가 덮어쓰지 않는 경우 ProjectReference
참조의 유효한 메타데이터가 유효할 수 있습니다.
항목 메타데이터 이름 | 묘사 |
---|---|
이름 | 선택적 문자열입니다. 참조의 표시 이름입니다. |
GlobalPropertiesToRemove | 선택적 string[] . 참조된 프로젝트를 빌드할 때 제거할 속성의 이름입니다(예: RuntimeIdentifier;PackOnBuild ). 기본값은 비어 있습니다. |
프로젝트 | 선택적 문자열입니다. {12345678-1234-1234-1234-123456781234}형식의 참조에 대한 GUID입니다. |
OutputItemType | 선택적 문자열입니다. 대상 출력을 내보낸 항목 유형입니다. 기본값은 비어 있습니다. 참조 메타데이터가 "true"(기본값)로 설정된 경우 대상 출력은 컴파일러에 대한 참조가 됩니다. |
ReferenceOutputAssembly | 선택적 부울입니다.
false 설정하면 참조된 프로젝트의 출력을 이 프로젝트의 참조 포함하지 않지만 다른 프로젝트가 이 프로젝트 앞에 빌드되도록 합니다. 기본값은 true . |
민간의 | 선택적 부울입니다. 참조를 출력 폴더에 복사할지 여부를 지정합니다. 이 특성은 Visual Studio IDE에 있는 참조의 로컬 복사 속성과 일치합니다. |
SetConfiguration | 선택적 문자열입니다. 참조된 프로젝트의 전역 속성 Configuration 설정합니다(예: Configuration=Release ). |
SetPlatform | 선택적 문자열입니다. 참조된 프로젝트의 전역 속성 Platform 설정합니다(예: Platform=AnyCPU ). |
SetTargetFramework | 선택적 문자열입니다. 참조된 프로젝트의 전역 속성 TargetFramework 설정합니다(예: TargetFramework=netstandard2.0 ). |
SkipGetTargetFrameworkProperties | 선택적 부울입니다.
true 경우 가장 호환되는 TargetFramework 값을 협상하지 않고 참조된 프로젝트를 빌드합니다. 기본값은 false . |
대상 | 선택적 string[] . 빌드해야 하는 참조된 프로젝트에서 세미콜론으로 구분된 대상 목록입니다. 기본값은 $(ProjectReferenceBuildTargets) 값이며, 기본값은 기본 대상을 나타내는 빈 값입니다.
MSBuild.exe 또는 dotnet build 아니라 Visual Studio에서 빌드할 때 이를 지정해도 Visual Studio에서 참조된 프로젝트의 기본 대상을 빌드할 수 없습니다. |
메모
.NET Framework와 .NET Core(.NET 5 이상 포함) 간에 프로젝트 참조가 작동하는 방식에는 차이가 있습니다. .NET Framework 프로젝트에서 프로젝트 참조는 전이적이지 않습니다. 즉, Project1이 Project2를 참조하고 Project2가 Project3을 참조하는 경우 Project1에서 Project3에 대해 코딩할 수 없습니다. 그러나 .NET Core(.NET 5 이상 포함)에서는 프로젝트 참조 전이적입니다. Project1에서 Project3에 대해 코딩할 수 있습니다.
엮다
컴파일러의 원본 파일을 나타냅니다.
항목 메타데이터 이름 | 묘사 |
---|---|
DependentUpon | 선택적 문자열입니다. 이 파일이 올바르게 컴파일하기 위해 사용하는 파일을 지정합니다. |
AutoGen | 선택적 부울입니다. Visual Studio IDE(통합 개발 환경)에서 프로젝트에 대해 파일이 생성되었는지 여부를 나타냅니다. |
링크 | 선택적 문자열입니다. 파일이 실제로 프로젝트 파일의 영향 외부에 있을 때 표시할 표기법 경로입니다. |
보이는 | 선택적 부울입니다. Visual Studio의 솔루션 탐색기 파일을 표시할지 여부를 나타냅니다. |
CopyToOutputDirectory | 선택적 문자열입니다. 파일을 출력 디렉터리에 복사할지 여부를 결정합니다. 값은 다음과 같습니다. 1. 절대 안 하세요 2. 항상 3. PreserveNewest 4. IfDifferent |
EmbeddedResource
생성된 어셈블리에 포함할 리소스를 나타냅니다.
항목 메타데이터 이름 | 묘사 |
---|---|
문화 | 선택적 문자열입니다. 리소스 파일의 문화권을 지정합니다. 지정된 경우 빌드 프로세스는 파일 확장명(빌드를 호스팅하는 컴퓨터의 .NET/OS에서 사용할 수 있는 문화권에 따라 다름)에 따라 문화권을 자동으로 유추하지 않습니다.
Culture={culture identifier} 또는 WithCulture=false 메타데이터를 설정하는 것이 좋습니다. |
WithCulture | 선택적 부울입니다. 파일이 문화권 중립이고 AssignCulture 작업에 의한 문화권 검색을 건너뛰어야 임을 지정합니다.
Culture={culture identifier} 또는 WithCulture=false 메타데이터를 설정하는 것이 좋습니다. |
DependentUpon | 선택적 문자열입니다. 이 파일이 올바르게 컴파일하기 위해 사용하는 파일을 지정합니다. |
발생기 | 선택적 문자열입니다. 이 항목에서 실행되는 파일 생성기의 이름입니다. |
LastGenOutput | 선택적 문자열입니다. 이 항목에서 실행된 파일 생성기에서 만든 파일의 이름입니다. |
CustomToolNamespace | 선택적 문자열입니다. 이 항목에서 실행되는 모든 파일 생성기가 코드를 만들어야 하는 네임스페이스입니다. |
링크 | 선택적 문자열입니다. 파일이 프로젝트의 영향을 받지 않는 경우 표기법 경로가 표시됩니다. |
보이는 | 선택적 부울입니다. Visual Studio의 솔루션 탐색기 파일을 표시할지 여부를 나타냅니다. |
CopyToOutputDirectory | 선택적 문자열입니다. 파일을 출력 디렉터리에 복사할지 여부를 결정합니다. 값은 다음과 같습니다. 1. 절대 안 하세요 2. 항상 3. PreserveNewest 4. IfDifferent |
LogicalName | 필수 문자열입니다. 포함된 리소스의 논리적 이름입니다. |
콘텐츠
프로젝트로 컴파일되지 않지만 함께 포함되거나 게시될 수 있는 파일을 나타냅니다.
없음
빌드 프로세스에서 역할이 없어야 하는 파일을 나타냅니다.
항목 메타데이터 이름 | 묘사 |
---|---|
DependentUpon | 선택적 문자열입니다. 이 파일이 올바르게 컴파일하기 위해 사용하는 파일을 지정합니다. |
발생기 | 선택적 문자열입니다. 이 항목에서 실행되는 파일 생성기의 이름입니다. |
LastGenOutput | 선택적 문자열입니다. 이 항목에서 실행된 파일 생성기에서 만든 파일의 이름입니다. |
CustomToolNamespace | 선택적 문자열입니다. 이 항목에서 실행되는 모든 파일 생성기가 코드를 만들어야 하는 네임스페이스입니다. |
링크 | 선택적 문자열입니다. 파일이 프로젝트의 영향을 받지 않는 경우 표시할 표기법 경로입니다. |
보이는 | 선택적 부울입니다. Visual Studio의 솔루션 탐색기 파일을 표시할지 여부를 나타냅니다. |
CopyToOutputDirectory | 선택적 문자열입니다. 파일을 출력 디렉터리에 복사할지 여부를 결정합니다. 값은 다음과 같습니다. 1. 절대 안 하세요 2. 항상 3. PreserveNewest 4. IfDifferent |
AssemblyMetadata
[AssemblyMetadata(key, value)]
생성할 어셈블리 특성을 나타냅니다.
항목 메타데이터 이름 | 묘사 |
---|---|
포함하다 |
AssemblyMetadataAttribute 특성 생성자의 첫 번째 매개 변수(키)가 됩니다. |
값 | 필수 문자열입니다.
AssemblyMetadataAttribute 특성 생성자의 두 번째 매개 변수(값)가 됩니다. |
메모
이 항목은 .NET 5(및 .NET Core) 이상 버전용 SDK를 사용하는 프로젝트에 적용됩니다.
InternalsVisibleTo
[InternalsVisibleTo(..)]
어셈블리 특성으로 내보낸 어셈블리를 지정합니다.
항목 메타데이터 이름 | 묘사 |
---|---|
포함하다 | 어셈블리 이름입니다. |
열쇠 | 선택적 문자열입니다. 어셈블리의 공개 키입니다. |
메모
이 항목은 .NET 5(및 .NET Core) 이상 버전용 SDK를 사용하는 프로젝트에 적용됩니다.
BaseApplicationManifest
빌드의 기본 애플리케이션 매니페스트를 나타내며 ClickOnce 배포 보안 정보를 포함합니다.
CodeAnalysisImport
가져올 FxCop 프로젝트를 나타냅니다.
수입
Visual Basic 컴파일러에서 네임스페이스를 가져와야 하는 어셈블리를 나타냅니다.
폴더
이 요소는 Visual Studio에서 빈 폴더의 자리 표시자로만 사용됩니다. 폴더가 채워지면 다른 요소로 대체됩니다.