sign 命令 (NuGet CLI)

适用于:包创建 • 支持的版本:4.6 及以上版本

使用证书对匹配第一个参数的所有包进行签名。 通过提供使用者名称或 SHA-1 指纹,可从文件或证书存储中安装的证书获取带私钥的证书。

注意

.NET Core、Mono 或非 Windows 平台上尚不支持包签名。

使用情况

nuget sign <package(s)> [options]

其中,<package(s)> 为一个或多个 .nupkg 文件。

选项

  • -CertificateFingerprint

    指定用于在本地证书存储中搜索证书的指纹。

    从 NuGet.exe 6.12 开始,可使用此选项指定证书的 SHA-1、SHA-256、SHA-384 或 SHA-512 指纹。 但是,使用 SHA-1 证书指纹时会引发 NU3043 警告,因为它不再被视为安全。

    NuGet.exe 的所有先前版本仍然只接受 SHA-1 证书指纹。

  • -CertificatePassword

    如果需要,指定证书密码。 如果证书受密码保护但未提供密码,则该命令在运行时会提示输入密码,除非已传递 -NonInteractive 选项。

  • -CertificatePath

    指定对包进行签名时要使用的证书的文件路径。

  • -CertificateStoreLocation

    指定用于搜索证书的 x.509 证书存储的名称。 默认为“CurrentUser”,即当前用户使用的 X.509 证书存储。 当通过 -CertificateSubjectName-CertificateFingerprint 选项指定证书时,应使用此选项。

  • -CertificateStoreName

    指定用于搜索证书的 x.509 证书存储的名称。 默认为“My”,即个人证书的 X.509 证书存储。 当通过 -CertificateSubjectName-CertificateFingerprint 选项指定证书时,应使用此选项。

  • -CertificateSubjectName

    指定用于在本地证书存储中搜索证书的证书使用者名称。 该搜索是使用提供的值进行的区分大小写的字符串比较,它将查找使用者名称中包含该字符串的所有证书,且不考虑其他使用者值。 可通过 -CertificateStoreName-CertificateStoreLocation 选项指定证书存储。

  • -ConfigFile

    要应用的 NuGet 配置文件。 如果未指定,则使用 %AppData%\NuGet\NuGet.Config(适用于 Windows)或是 ~/.nuget/NuGet/NuGet.Config~/.config/NuGet/NuGet.Config(适用于 Mac/Linux)。

  • -ForceEnglishOutput

    使用固定的、基于英语的区域性强制 nuget.exe 运行。

  • -HashAlgorithm

    用于对包进行签名的哈希算法。 默认为 SHA256。 可能的值有 SHA256、SHA384 和 SHA512。

  • -?|-help

    显示此命令的帮助信息。

  • -NonInteractive

    不为用户输入或确认显示提示。

  • -OutputDirectory

    指定用于保存已签名的包的目录。 默认情况下,原始包将被已签名包覆盖。

  • -Overwrite

    切换以指示是否应覆盖当前签名。 默认情况下,如果包已有签名,该命令将失败。

  • -Timestamper

    RFC 3161 时间戳加盖服务器的 URL。

  • -TimestampHashAlgorithm

    RFC 3161 时间戳服务器要使用的哈希算法。 默认为 SHA256。

  • -Verbosity [normal|quiet|detailed]

    指定输出中显示的细节量:normal(默认值)、quietdetailed

示例

nuget sign MyPackage.nupkg -CertificatePath .\..\certificate.pfx -Timestamper http://timestamp.test

nuget sign .\..\MyPackage.nupkg -CertificateStoreLocation CurrentUser -CertificateStoreName My -CertificateSubjectName 'subject name' -Timestamper http://timestamp.test -OutputDirectory .\..\Signed