DrG*_*iff 6 .net nuget nuget-package nuspec
我有一个指向 .NET 4.7.1 库的 DLL。
可能无关紧要,但它是用 C# 编写的,并且使用“packages.config”模式而不是较新的 PackageReference 配置使用 NuGet 包。
我将它发布为 NuGet 包(多年来一直这样做)。但是现在当我执行以下操作时:
nuget pack -Properties Configuration=Release
Run Code Online (Sandbox Code Playgroud)
我收到以下警告:
错误 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>
Run Code Online (Sandbox Code Playgroud)
这会消耗以下 NuGet 包:
当我查看参考文献时,我看到以下内容(使用 ~ 来缩短路径):
所以在我看来,一切看起来都与 .NET 4.7.1 兼容,为什么会出现这个警告?
按照NuGet 警告 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>
Run Code Online (Sandbox Code Playgroud)
但这没有效果,我仍然收到错误消息。
小智 7
根据NU5128文档,此警告是在 NuGet 5.3 开发期间添加的,并且首先在 .NET Core SDK 3.0 Preview 9 中提供。NuGet/Home#8583跟踪在太多场景中引发警告的问题。您可以使用 NoWarn MSBuild 属性(将 $(NoWarn);NU5128 添加到项目文件中的任何 PropertyGroup 中)。如果您有多个项目受到影响,您可以使用Directory.Build.targets自动将 NoWarn 添加到所有项目
