아티팩트 출력 레이아웃
.NET 8 이상 버전에는 빌드 출력에 대한 출력 경로 및 폴더 구조를 간소화하는 옵션이 있습니다. 모든 프로젝트의 모든 빌드 출력은 프로젝트로 구분된 공통 위치에 수집됩니다. 공통 위치를 사용하면 도구에서 출력을 찾을 위치를 쉽게 예측할 수 있습니다.
기본적으로 공통 위치는 Directory.build.props 파일 옆에 있는 아티팩트라는 디렉터리입니다. 루트 아티팩트 폴더 아래의 폴더 구조는 다음과 같습니다.
📁 artifacts
└──📂 <Type of output>
└──📂 <Project name>
└──📂 <Pivot>
다음 표에서는 폴더 구조의 각 수준에 대한 기본값을 보여줍니다. Directory.build.props 파일의 속성을 사용하여 값과 기본 위치를 재정의할 수 있습니다.
폴더 수준 | 설명 | 예제 |
---|---|---|
출력 형식 | 이진 파일, 중간/생성된 파일, 게시된 애플리케이션 및 NuGet 패키지와 같은 빌드 출력의 범주입니다. | |
프로젝트 이름 | 출력을 각 프로젝트별로 구분합니다. | MyApp |
피벗 | 다양한 구성, 대상 프레임워크 및 런타임 식별자에 대한 프로젝트의 빌드를 구분합니다. 여러 요소가 필요한 경우 밑줄(_ )로 조인됩니다. ArtifactsPivots MSBuild 속성을 사용하여 사용자 지정할 수 있습니다. |
예제
다음 표에서는 생성될 수 있는 경로의 예를 보여 줍니다.
Path | 설명 |
---|---|
artifacts\bin\MyApp\debug | dotnet build (을)를 실행할 때 간단한 프로젝트의 빌드 출력 경로입니다. |
artifacts\obj\MyApp\debug | dotnet build (을)를 실행할 때 간단한 프로젝트의 중간 출력 경로입니다. |
artifacts\bin\MyApp\debug_net8.0 | 다중 대상 프로젝트의 net8.0 빌드에 대한 빌드 출력 경로입니다. |
artifacts\publish\MyApp\release_linux-x64 | linux-x64 에 대해 게시할 때 간단한 앱의 게시 경로입니다. |
artifacts\package\MyApp\release | 프로젝트에 대해 릴리스 .nupkg(이)가 만들어지는 폴더입니다. |
구성 방법
중앙 집중식 출력 경로 형식을 옵트인하려면 다음 MSBuild 속성 중 하나를 Directory.Build.props 파일에 추가합니다.
기본 출력 위치를 사용하려면
UseArtifactsOutput
속성을true
(으)로 설정합니다.<PropertyGroup> <UseArtifactsOutput>true</UseArtifactsOutput> </PropertyGroup>
사용자 지정 출력 위치를 설정하려면 값이
$(MSBuildThisFileDirectory)artifacts
(또는 폴더 위치를 원하는 대로)인ArtifactsPath
속성을 추가합니다. Directory.Build.props 파일이 아직 없는 경우 다음 명령을 실행하여ArtifactsPath
속성이 포함된 파일을 자동으로 생성할 수 있습니다.dotnet new buildprops --use-artifacts
생성된 파일은 다음과 유사합니다.
<Project> <PropertyGroup> <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath> </PropertyGroup> </Project>
"피벗" 폴더 이름은 기본적으로 TFM(대상 프레임워크 모니커), 구성 및 RID(런타임 식별자)의 조합으로 설정됩니다. 존재하지 않는 모든 항목은 생략됩니다. "피벗" 폴더의 이름을 지정하는 방법을 사용자 지정하려면 ArtifactsPivots
MSBuild 속성을 원하는 문자열로 설정합니다. 예시:
<PropertyGroup>
...
<ArtifactsPivots>$(ArtifactsPivots)_MyCustomPivot</ArtifactsPivots>
</PropertyGroup>
.NET