NuGet 错误 NU3001

方案 1

为证书文件“certificate.pfx”提供的密码无效。 使用“-CertificatePassword”选项提供有效的密码。

问题

向 NuGet 签名操作提供了受密码保护的证书文件。 但提供了无效密码或未提供密码。

解决方案

如果使用受密码保护的证书文件对 NuGet 包进行签名,请使用 -CertificatePassword 选项传递正确的密码。

方案 2

无法找到证书文件“certificate.pfx”。 有关可接受的提供证书的方法列表,请访问 https://docs.nuget.org/docs/reference/command-line-reference

问题

已向 NuGet Sign 操作提供证书文件。 但磁盘上不存在该文件。

解决方案

请确保磁盘上存在用于对 NuGet 包进行签名的证书文件。

方案 3

证书文件“random_file.txt”无效。 有关可接受的提供证书的方法列表,请访问 https://docs.nuget.org/docs/reference/command-line-reference

问题

向 NuGet Sign 操作提供了证书文件,但该文件不是有效证书文件。

解决方案

请确保用于对 NuGet 包进行签名的所有证书文件均为有效证书文件。

方案 4

找到满足给定条件的多个证书。 将“-CertificateFingerprint”选项与所需证书的哈希一起使用。

问题

使用 -CertificateSubjectName 选项向 NuGet Sign 命令提供了建议的证书。 但发现多个证书与 Windows 证书存储中的证书使用者名称匹配。

解决方案

请将附带所需证书哈希的“-CertificateFingerprint”选项传递给 NuGet Sign 命令以对证书进行唯一标识。

方案 5

未找到满足所有给定条件的证书。 有关可接受的提供证书的方法列表,请访问 https://docs.nuget.org/docs/reference/command-line-reference

问题

使用 -CertificateSubjectName 选项向 NuGet Sign 命令提供了建议的证书。 但未找到与 Windows 证书存储中的证书使用者名称匹配的证书使用者名称。

解决方案

请务必传递正确的使用者名称筛选器,否则请将附带所需证书哈希的“-CertificateFingerprint”选项传递给 NuGet Sign 命令以对证书进行唯一标识。

方案 6

以下证书不能用于包签名,因为系统不支持私钥提供程序:使用者名称:CN = 证书使用者名称
SHA1 哈希:HASH
SHA256 哈希:HASH
颁发者:颁发者使用者名称
有效期:2016 年 4 月 9 日下午 5:00:00 到 2020 年 4 月 14 日凌晨 5:00:00

问题

已将证书传递给 NuGet Sign 命令,但该命令具有不受支持的私钥提供程序。

解决方案

目前,由于框架限制,NuGet Sign 命令不支持 CNG 密钥私钥提供程序。 请将证书与 CAPI 私钥提供程序配合使用。

方案 7

包已包含签名。 在添加新签名之前删除现有签名。

问题

使用 NuGet Sign 命令对已具有包签名的包进行了签名。

解决方案

请确保对未签名的包进行签名。 如果包已签名,请使用 -Overwrite 选项覆盖现有签名。