我有一个DLL寻址.NET 4.7.1库。
可能不相关,但是它是用C#编写的,并且使用“ packages.config”模式而不是较新的PackageReference配置来使用NuGet软件包。
我以NuGet软件包的形式发布了此文件(已经这样做了几年了)。但是现在当我执行以下命令时:
nuget pack -Properties Configuration=Release
我收到以下警告:
错误NU5128:在依赖项中声明了一些目标框架nuspec组和lib / ref文件夹不完全匹配在另一个位置。请参阅以下操作列表:-将.NETFramework4.7.1的依赖组添加到nuspec
我在nuspec的依赖项组中没有任何内容:
<?xml version="1.0"?>
<package >
<metadata>
<id>*******</id>
<version>*******</version>
<title>*******</title>
<authors>*******</authors>
<owners>*******</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>*******</description>
<releaseNotes>*******</releaseNotes>
<copyright>*******</copyright>
<tags>*******</tags>
</metadata>
</package>
这消耗了以下NuGet软件包:
当我在“参考”下查看时,会看到以下内容(用于〜缩短路径):
因此,在我看来,所有内容看起来都与.NET 4.7.1兼容,所以为什么出现此警告?
在NuGet Warning NU5128中给出详细信息之后,因此添加了一个依赖项组:
<?xml version="1.0"?>
<package >
<metadata>
<id>*******</id>
<version>*******</version>
<title>*******</title>
<authors>*******</authors>
<owners>*******</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>*******</description>
<releaseNotes>*******</releaseNotes>
<copyright>*******</copyright>
<tags>*******</tags>
<dependencies>
<group targetFramework=".NETFramework4.7.1" />
</dependencies>
</metadata>
</package>
但是这没有效果,我仍然会收到错误。
根据NU5128文档,此警告是在NuGet 5.3的开发过程中添加的,并且首先在.NET Core SDK 3.0 Preview 9中可用。NuGet/Home#8583跟踪了在许多情况下都发出警告的问题。您可以使用NoWarn MSBuild属性(将$(NoWarn); NU5128添加到您的项目文件中的任何PropertyGroup)。如果您有多个受影响的项目,则可以使用Directory.Build.targets自动将NoWarn添加到所有项目中