NuGet 错误 NU3004

方案 1

Package 'SamplePackage v1.0.0' from source 'https://contoso.com/index.json': The package is not signed.
Package 'SamplePackage v1.0.0' from source 'https://contoso.com/index.json': signatureValidationMode is set to require, so packages are allowed only if signed by trusted signers; however, this package is unsigned.

问题

如果从 nuget verify -signatures

NuGet 客户端尝试验证未签名的包。

如果将 signatureValidationMode 指定为 require 时从还原或安装

require 验证模式不支持未签名的包,而系统在尝试安装未签名的包。

解决方案

请确保要安装或传递给 nuget verify -signatures 命令的包均包含包签名。

方案 2

Package 'SamplePackage v1.0.0' from source 'https://contoso.com/index.json': This repository indicated that all its packages are repository signed; however, this package is unsigned.

问题

存储库表明其所有包均已完成存储库签名。 但是,下载了未签名的包。

解决方案

警告

使用多个 NuGet 客户端时可能会出现此错误(请参阅 NuGet/Home#7997)。 请升级到 nuget.exe 5.1.0 或更高版本、Visual Studio 2019 16.1 或更高版本,以及 .NET SDK 2.1.70X 或是 2.2.30X 或更高版本。

可使用 dotnet nuget verifynuget verify 命令检查包是否已签名。 如果包未签名,请联系包源,因为这属于意外行为。