创建 NuGet 包:NU5128 异常 - 不清楚如何修复
Creating NuGet package: NU5128 exception - not clear on how to fix
我有一个寻址 .NET 4.7.1 库的 DLL。
可能不相关,但它是用 C# 编写的,使用 "packages.config" 模式而不是较新的 PackageReference 配置来使用 NuGet 包。
我将其作为 NuGet 包发布(多年来一直这样做)。但是现在当我执行以下命令时:
nuget pack -Properties Configuration=Release
我收到以下警告:
Error NU5128: Some target frameworks declared in the dependencies
group of the nuspec and the lib/ref folder do not have exact matches
in the other location. Consult the list of actions below:
- Add a dependency group for .NETFramework4.7.1 to the 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 包:
- Microsoft.AspNet.WebApi.Client v5.2.7
- Microsoft.AspNet.WebApi.Core v5.2.7
- Microsoft.CodeAnalysis.FxCopAnalyzers v2.9.8
- Microsoft.CodeAnalysis.VersionCheckAnalyzer v2.9.8
- Microsoft.CodeQuality.Analyzers v2.9.8
- Microsoft.NetCore.Analyzers v2.9.8
- Microsoft.NetFramework.Analyzers v2.9.8
- Newtonsoft.Json v12.0.3
- StyleCop.Analyzers v1.1.118
当我查看参考资料时,我看到以下内容(使用 ~ 来缩短路径):
- Microsoft.CSharp~.NETFramework\v4.7.1\Microsoft.CSharp.dll
- Newtonsoft.Json~\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll
- 系统~\NETFramework\v4.7.1\System.dll
- System.Configuration~.NETFramework\v4.7.1\System.Configuration.dll
- System.Core~.NETFramework\v4.7.1\System.Core.dll
- System.Data~.NETFramework\v4.7.1\System.Data.dll
- System.Data.DataSetExtensions ~.NETFramework\v4.7.1\System.Data.DataSetExtensions.dll
- System.Net.Http~.NETFramework\v4.7.1\System.Net.Http.dll
- System.Net.Http.格式化~\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll
- System.Web.Http~\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll
- System.Xml~.NETFramework\v4.7.1\System.Xml.dll
- System.Xml.Linq ~.NETFramework\v4.7.1\System.Xml.Linq.dll
所以在我看来,一切看起来都与 .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 doc, This warning was added during NuGet 5.3's development, and first was available in .NET Core SDK 3.0 Preview 9. NuGet/Home#8583 tracks an issue where the warning was being raised in too many scenarios. You can use the NoWarn MSBuild property (add $(NoWarn);NU5128 to any PropertyGroup in your project file). If you have multiple projects affected, you can use Directory.Build.targets自动将NoWarn添加到所有项目
从 Nuget 5.7 开始,这现在被报告为 Nuget CLI 的错误 (https://github.com/NuGet/Home/issues/7404) - 所以我们的管道开始失败,即使我们之前有过这个错误。
如上所述,我们最终在相关 csproj 文件中使用了 Nowarn 方法 - 但我想补充一点,这可能会突然导致已经 运行 个管道出现问题。
如果您收到此警告,但在 the reference page、
上没有任何效果
将 .nupkg 打开为 zip 文件。
找到 .nuspec 文件并打开它。
在<dependencies>
中像这样添加你的目标框架
<group targetFramework=".NETFramework4.7.2" />
保存文件(WinZip 让您无需解压即可完成所有这些操作 re-zipping)
再次将 .nupkg 发布到您的 nuget 存储库。
这很烦人,但这是唯一对我有用的东西。
我有一个寻址 .NET 4.7.1 库的 DLL。
可能不相关,但它是用 C# 编写的,使用 "packages.config" 模式而不是较新的 PackageReference 配置来使用 NuGet 包。
我将其作为 NuGet 包发布(多年来一直这样做)。但是现在当我执行以下命令时:
nuget pack -Properties Configuration=Release
我收到以下警告:
Error NU5128: Some target frameworks declared in the dependencies group of the nuspec and the lib/ref folder do not have exact matches in the other location. Consult the list of actions below: - Add a dependency group for .NETFramework4.7.1 to the 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 包:
- Microsoft.AspNet.WebApi.Client v5.2.7
- Microsoft.AspNet.WebApi.Core v5.2.7
- Microsoft.CodeAnalysis.FxCopAnalyzers v2.9.8
- Microsoft.CodeAnalysis.VersionCheckAnalyzer v2.9.8
- Microsoft.CodeQuality.Analyzers v2.9.8
- Microsoft.NetCore.Analyzers v2.9.8
- Microsoft.NetFramework.Analyzers v2.9.8
- Newtonsoft.Json v12.0.3
- StyleCop.Analyzers v1.1.118
当我查看参考资料时,我看到以下内容(使用 ~ 来缩短路径):
- Microsoft.CSharp~.NETFramework\v4.7.1\Microsoft.CSharp.dll
- Newtonsoft.Json~\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll
- 系统~\NETFramework\v4.7.1\System.dll
- System.Configuration~.NETFramework\v4.7.1\System.Configuration.dll
- System.Core~.NETFramework\v4.7.1\System.Core.dll
- System.Data~.NETFramework\v4.7.1\System.Data.dll
- System.Data.DataSetExtensions ~.NETFramework\v4.7.1\System.Data.DataSetExtensions.dll
- System.Net.Http~.NETFramework\v4.7.1\System.Net.Http.dll
- System.Net.Http.格式化~\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll
- System.Web.Http~\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll
- System.Xml~.NETFramework\v4.7.1\System.Xml.dll
- System.Xml.Linq ~.NETFramework\v4.7.1\System.Xml.Linq.dll
所以在我看来,一切看起来都与 .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 doc, This warning was added during NuGet 5.3's development, and first was available in .NET Core SDK 3.0 Preview 9. NuGet/Home#8583 tracks an issue where the warning was being raised in too many scenarios. You can use the NoWarn MSBuild property (add $(NoWarn);NU5128 to any PropertyGroup in your project file). If you have multiple projects affected, you can use Directory.Build.targets自动将NoWarn添加到所有项目
从 Nuget 5.7 开始,这现在被报告为 Nuget CLI 的错误 (https://github.com/NuGet/Home/issues/7404) - 所以我们的管道开始失败,即使我们之前有过这个错误。
如上所述,我们最终在相关 csproj 文件中使用了 Nowarn 方法 - 但我想补充一点,这可能会突然导致已经 运行 个管道出现问题。
如果您收到此警告,但在 the reference page、
上没有任何效果将 .nupkg 打开为 zip 文件。
找到 .nuspec 文件并打开它。
在
<dependencies>
中像这样添加你的目标框架<group targetFramework=".NETFramework4.7.2" />
保存文件(WinZip 让您无需解压即可完成所有这些操作 re-zipping)
再次将 .nupkg 发布到您的 nuget 存储库。
这很烦人,但这是唯一对我有用的东西。