NuGet Warning NU5130
Some target frameworks declared in the dependencies group of the nuspec and the lib/ref folder have compatible matches, but not exact matches in the other location. Unless intentional, consult the list of actions below:
- Add a dependency group for .NETFramework4.7.2 to the nuspec
Issue
The lib/<tfm>/
or ref/<tfm>/
directory in the package contains at least one file for the Target Framework Moniker (TFM) specified in the warning message. However, no dependency group exists for this TFM in the nuspec
file. This may cause package consumers to believe the package is not compatible with the TFM. If the assemblies for the specified TFM have different dependencies to the compatible TFM defined in the dependencies group, the project using the package may experience runtime failures.
Solution
- Run NuGet's pack target on the project
If possible, use NuGet's MSBuild pack target, as it automatically matches assembly TFMs with dependency groups from the project's target frameworks. Note that your project must use PackageReference
for its own NuGet dependencies. If your project uses packages.config, you need to use nuget.exe pack
and a nuspec
file.
- Manually edit the
nuspec
file
If you are using a custom nuspec
file, we recommend each TFM for which lib/
or ref/
assemblies exist should have a matching dependency group, even if the dependencies are the same as the next compatible TFM. For example, if a package contains netstandard1.0
and netstandard2.0
assemblies, and the dependencies are the same for both, we recommend both TFMs be listed as dependency groups with duplicate dependency items.
Note that the TFM identifier used in the assembly paths use a different format to the TFM identifier used in dependency groups. The warning message specifies the correct name to use in the dependency group. If your package does not have any dependencies for that target framework, use an empty group. For example:
<package>
<metadata>
...
<dependencies>
<group targetFramework=".NETFramework4.7.2" />
</dependencies>
</metadata>
...
<package>
- Remove the
lib/
orref/
files
If you do not wish your package to be compatible with the reported TFM, modify your project such that no lib/<tfm>/
or ref/<tfm>/
files are in the package for that TFM. For example, if the warning says to add a dependency group for .NETFramework4.7.2
to the nuspec
, then remove any lib/net472/*
and ref/net472/*
files from your package.