Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция 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
Никакой.