MSBuild 잘 알려진 항목 메타데이터

항목 메타데이터는 항목에 연결된 값입니다. 일부는 항목을 만들 때 MSBuild가 항목에 할당하지만 필요한 메타데이터를 직접 정의할 수도 있습니다. 일부 사용자 정의 메타데이터 값은 MSBuild, 특정 작업 또는 .NET SDK와 같은 SDK에서 유효합니다.

이 문서의 첫 번째 표에서는 모든 항목을 만들 때 할당되는 메타데이터에 대해 설명합니다. 다음 표에서는 MSBuild에서 유효한 몇 가지 선택적 메타데이터를 보여 줍니다. 이러한 메타데이터를 정의하여 빌드 동작을 제어할 수 있습니다. 각 예제에서 프로젝트에 파일 C:\MyProject\Source\Program.cs를 포함하는 데 다음과 같은 항목 선언이 사용되었습니다.

<ItemGroup>
    <MyItem Include="Source\Program.cs" />
</ItemGroup>
항목 메타데이터 설명
%(FullPath) 항목의 전체 경로를 포함합니다. 예시:

C:\MyProject\Source\Program.cs
%(RootDir) 항목의 루트 디렉터리를 포함합니다. 예시:

C:\
%(Filename) 확장명 없이 항목의 파일 이름을 포함합니다. 예시:

프로그램
%(Extension) 항목의 파일 이름 확장명을 포함합니다. 예시:

.cs
%(RelativeDir) 마지막 백슬래시(\)까지 Include 특성에 지정된 경로를 포함합니다. 예시:

Source\

Include 특성이 전체 경로인 경우 %(RelativeDir)는 루트 디렉터리 %(RootDir)로 시작합니다. 예:

C:\MyProject\Source\
%(Directory) 루트 디렉터리를 제외한 항목의 디렉터리를 포함합니다. 예시:

MyProject\Source\
%(RecursiveDir) Include 특성에 와일드카드 **가 포함되는 경우 메타데이터는 와일드카드를 대신하는 경로 부분을 지정합니다. 와일드카드에 대한 자세한 내용은 방법: 빌드할 파일 선택을 참조하세요.

폴더 C:\MySolution\MyProject\Source\Program.cs 파일이 포함되고 프로젝트 파일에 다음 항목이 포함된 경우:

<ItemGroup>

<MyItem Include="C:\**\Program.cs" />

</ItemGroup>

%(MyItem.RecursiveDir) 값은 MySolution\MyProject\Source\가 됩니다.
%(Identity) Include 특성에 지정된 항목입니다. 예시:

Source\Program.cs
%(ModifiedTime) 항목을 마지막으로 수정한 시간의 타임스탬프를 포함합니다. 예시:

2004-07-01 00:21:31.5073316
%(CreatedTime) 항목을 만든 시간의 타임스탬프를 포함합니다. 예시:

2004-06-25 09:26:45.8237425
%(AccessedTime) 항목을 마지막으로 액세스한 시간의 타임스탬프를 포함합니다.

2004-08-14 16:52:36.3168743
%(DefiningProjectFullPath) 이 항목을 정의하는 프로젝트 파일(또는 가져온 파일)의 전체 경로를 포함합니다.
%(DefiningProjectDirectory) 이 항목을 정의하는 프로젝트 파일(또는 가져온 파일)의 프로젝트 디렉터리를 포함합니다.
%(DefiningProjectName) 확장명 없이 이 항목을 정의하는 프로젝트 파일(또는 가져온 파일)의 이름을 포함합니다.
%(DefiningProjectExtension) 이 항목을 정의하는 프로젝트 파일(또는 가져온 파일)의 확장자를 포함합니다.

참고 항목