Предупреждение NuGet NU5130
Некоторые целевые платформы, объявленные в группе зависимостей nuspec и папке lib/ref, имеют совместимые совпадения, но не точные совпадения в другом расположении. Если не преднамеренные, ознакомьтесь со списком действий ниже:
- Добавьте группу зависимостей для . NETFramework4.7.2 в nuspec
Проблема
ref/<tfm>/
Каталог lib/<tfm>/
в пакете содержит по крайней мере один файл для Moniker Целевой платформы (TFM), указанный в сообщении предупреждения. Однако для этого TFM в nuspec
файле не существует группы зависимостей. Это может привести к тому, что потребители пакетов считают, что пакет несовместим с TFM. Если сборки для указанного TFM имеют разные зависимости для совместимого TFM, определенного в группе зависимостей, проект с помощью пакета может столкнуться с ошибками среды выполнения.
Решение
- Запуск целевого объекта пакета NuGet в проекте
По возможности используйте целевой объект пакета MSBuild NuGet, так как он автоматически сопоставляет сборки TFM с группами зависимостей из целевых платформ проекта. Обратите внимание, что проект должен использовать PackageReference
для собственных зависимостей NuGet. Если в проекте используется packages.config, необходимо использовать nuget.exe pack
и nuspec
файл.
- Редактирование
nuspec
файла вручную
Если вы используете пользовательский nuspec
файл, рекомендуется использовать каждый TFM, для которого lib/
или ref/
сборки существуют, должны иметь соответствующую группу зависимостей, даже если зависимости совпадают со следующим совместимым TFM. Например, если пакет содержит netstandard1.0
и netstandard2.0
сборки, а зависимости одинаковы для обоих, рекомендуется указывать оба TFM в качестве групп зависимостей с повторяющимися элементами зависимостей.
Обратите внимание, что идентификатор TFM, используемый в путях сборки, использует другой формат идентификатора TFM, используемого в группах зависимостей. Предупреждение указывает правильное имя, используемое в группе зависимостей. Если пакет не имеет зависимостей для этой целевой платформы, используйте пустую группу. Например:
<package>
<metadata>
...
<dependencies>
<group targetFramework=".NETFramework4.7.2" />
</dependencies>
</metadata>
...
<package>
lib/
Удаление илиref/
файлы
Если вы не хотите, чтобы ваш пакет был совместим с сообщаемой платформой TFM, измените проект таким образом, что нет lib/<tfm>/
или ref/<tfm>/
файлы находятся в пакете для этого TFM. Например, если предупреждение добавляет в пакет группу .NETFramework4.7.2
nuspec
зависимостей, удалите все lib/net472/*
ref/net472/*
и файлы из пакета.