자체 포함 배포 및 실행 파일 트리밍
프레임워크 종속 배포 모델은 .NET 도입 이후 가장 성공적인 배포 모델입니다. 이 시나리오에서 애플리케이션 개발자는 애플리케이션과 타사 어셈블리만 번들하고 .NET 런타임 및 런타임 라이브러리는 클라이언트 머신에서 사용할 수 있을 것으로 예상합니다. 이 배포 모델은 최신 .NET 릴리스에서도 주요 모델로 계속 사용되지만 프레임워크 종속 모델이 최선의 선택이 아닌 몇 가지 시나리오가 있습니다. 다른 방법은 .NET 런타임과 런타임 라이브러리가 애플리케이션 및 타사 어셈블리와 함께 번들되는 자체 포함 애플리케이션을 게시하는 것입니다.
트리밍된 자체 포함 배포 모델은 배포 크기를 줄이도록 최적화된 특수 버전의 자체 포함 배포 모델입니다. 배포 크기 최소화는 Blazor 애플리케이션과 같은 일부 클라이언트 쪽 시나리오의 중요한 요구 사항입니다. 애플리케이션 복잡성에 따라 프레임워크 어셈블리의 하위 집합만 참조되며 각 어셈블리 내 코드의 하위 집합은 애플리케이션 실행에 필요합니다. 사용되지 않는 라이브러리 부분은 필요가 없으며 패키지된 애플리케이션에서 트리밍할 수 있습니다.
그러나 다양한 문제 코드 패턴을 안정적으로 분석할 수 없다는 점에서(주로 리플렉션 사용을 중심으로 함) 애플리케이션의 빌드 시간 분석으로 인해 런타임에 오류가 발생할 위험이 있습니다. 이러한 문제를 완화하기 위해 트리머가 코드 패턴을 완전히 분석할 수 없을 때마다 경고가 생성됩니다. 트리밍 경고의 의미와 해결 방법에 대한 정보는 트리밍 경고 소개를 참조하세요.
참고 항목
- 트리밍은 .NET 6 이상 버전에서 완벽하게 지원됩니다. .NET Core 3.1 및 .NET 5에서 트리밍은 실험적인 기능이었습니다.
- 트리밍은 ‘게시된 자체 포함 애플리케이션에만’ 사용할 수 있습니다.
트리밍 문제를 일으키는 구성 요소
Warning
트리밍할 수 없는 프로젝트 형식도 있습니다. 자세한 내용은 알려진 트리밍 비호환성을 참조하세요.
빌드 시간 분석 문제를 일으키는 코드는 트리밍에 적합하지 않습니다. 애플리케이션에서 사용할 때 문제가 되는 몇 가지 일반적인 코딩 패턴은 무제한 리플렉션 사용과 빌드 시 표시되지 않는 외부 종속성에서 비롯됩니다. 무제한 리플렉션의 예는 XML 직렬화와 같은 레거시 serializer이고, 보이지 않는 외부 종속성의 예는 기본 제공 COM입니다. 애플리케이션의 트리밍 경고를 해결하려면 트리밍 경고 소개를 참조하고 라이브러리가 트리밍과 호환되도록 하려면 트리밍을 위한 .NET 라이브러리 준비를 참조하세요.
트리밍 사용
<PublishTrimmed>true</PublishTrimmed>
를 프로젝트 파일에 추가합니다.이 속성은 자체 포함 게시 시 잘린 앱을 생성합니다. 또한 트리밍과 호환되지 않는 기능을 해제하고 빌드 중에 트리밍 호환성 경고를 표시합니다.
<PropertyGroup> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup>
그런 다음, dotnet publish 명령 또는 Visual Studio를 사용하여 앱을 게시합니다.
CLI를 사용하여 게시
다음 예제에서는 Windows용 앱을 트리밍된 자체 포함 애플리케이션으로 게시합니다.
dotnet publish -r win-x64
트리밍은 자체 포함 앱에서만 지원됩니다.
<PublishTrimmed>
중에 자르기와 호환되지 않는 기능이 사용하지 않도록 설정되도록 dotnet build
를 프로젝트 파일에 설정해야 합니다. 그러나 이 옵션을 dotnet publish
에 대한 인수로 설정할 수도 있습니다.
dotnet publish -r win-x64 -p:PublishTrimmed=true
자세한 내용은 .NET CLI를 사용하여 .NET 앱 게시를 참조하세요.
Visual Studio를 사용하여 게시
솔루션 탐색기게시할 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성선택합니다.
마우스 오른쪽 버튼을 클릭하면 나오는 메뉴에서 속성 옵션이 강조 표시된 솔루션 탐색기
선택>빌드발행합니다.
Visual Studio Publish Trimmed 옵션을 사용하여 게시 페이지를
잘려진 게시
선택하여 잘려진 앱을 게시합니다. 게시 트리밍이 선택된 Visual Studio 게시 페이지 .
자세한 내용은 Visual Studio를 사용하여 .NET Core 앱 게시를 참조하세요.
참고 항목
.NET