PrunePackageReference 기능은 대상 플랫폼에서 제공하는 전이적 패키지를 자동으로 제거합니다. 이 변경으로 이 기능은 정리할 수 있는 항목 PackageReference 과 PrivateAssets=all 특성을 IncludeAssets=none 표시합니다. 이러한 특성은 패키지에 대해 생성된 종속성 목록에 패키지가 표시되지 않도록 합니다.
도입된 버전
.NET 10
이전 동작
이전에는 정리를 사용하도록 설정한 경우 패키지가 플랫폼에서 제공된 경우에도 직접 정리 가능한 PackageReference 항목이 생성된 .nuspec 종속성 목록에 계속 표시됩니다. (그리고 프로젝트가 .NET 10을 대상으로 하는 경우 경고를 생성했을 NU1510수 있습니다.)
예를 들어 다음 구성을 사용하여 다중 대상 지정 프로젝트를 고려합니다.
<PropertyGroup>
<TargetFramework>net10.0;net472</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Text.Json" Version="9.0.8" />
</ItemGroup>
이러한 프로젝트 파일은 두 대상 프레임워크에 대한 종속성이 있는 .nuspec 파일을 생성했습니다.
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="System.Text.Json" version="9.0.8" />
</group>
<group targetFramework="net10.0">
<dependency id="System.Text.Json" version="9.0.8" />
</group>
</dependencies>
새 동작
.NET 10부터 정리 기능이 활성화되면, 직접 정리할 수 있는 PackageReference 항목이 자동으로 PrivateAssets=all 및 IncludeAssets=none로 표시되며, 플랫폼에서 제공하는 대상 프레임워크를 위해 생성되는 종속성에서 제외됩니다. 그러나 프로젝트가 .NET 10 이상을 대상으로 하는 경우 프로젝트에서 참조를 NU1510 제거할 때까지 경고가 계속 표시됩니다.
이제 동일한 프로젝트 구성에서 제공하는 대상 프레임워크에서 정리 가능한 종속성이 제거된 .nuspec 파일(.NET 10)을 생성합니다.
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="System.Text.Json" version="9.0.8" />
</group>
<group targetFramework="net10.0">
</group>
</dependencies>
호환성이 손상되는 변경 유형
이 변경은 동작 변경입니다.
변경 이유
이렇게 변경하면 패키지 종속성이 각 대상 프레임워크의 실제 요구 사항을 정확하게 반영합니다. 대상 프레임워크에서 해당 API를 이미 제공한 경우 생성된 패키지에 불필요한 패키지 참조가 나타나지 않도록 방지합니다.
권장 작업
- 패키지를 만들고 경고를 받는
NU1510경우 해당 지침에 따릅니다. - 패키지를 만들고 생성된 .nuspec 종속 성이 대상 프레임워크 에 대해 참조된 패키지를 포함하지 않는 경우 필요하지 않으므로 프로젝트 파일에서 참조를 제거합니다.
- 참조된 패키지가 .nuspec 파일에 표시되면 아무 작업도 필요하지 않습니다.
영향을 받는 API
없음.
참조하기
.NET