我正在尝试使用命令推送我的 NuGet 包
dotnet nuget push *.nupkg --source https://api.nuget.org/v3/index.json --api-key *** --skip-duplicate
但我收到错误:
error: Response status code does not indicate success: 400 (This package must be signed with a registered certificate.)
有没有办法发布未签名的NuGet包?未签名的包裹有什么要求?
我想,不需要用证书对包进行签名。至少,我在官方文档中找不到任何有关此要求的信息。
我记得,代码签名证书不是免费的,我想说它们相当昂贵,对我来说购买证书每年发布一个包是没有意义的。
我已经找到原因了,
authors
.nuspec
属性(csproj项目文件中的Authors
属性)的值与我的全名不匹配。
我的全名带有变音符号。
根据 doc,
authors
应与 nuget.org 上的配置文件名称匹配。
在 nuget.org 上,配置文件名称显示为
<given_name><surname>
,没有变音符号,并且不起作用。
在 nuget.org 的帐户设置中,我的电子邮件旁边显示的全名为
<given_name> <surname>
,不带变音符号。这个表格也不起作用。
但是,我正在使用我的 Microsoft 帐户登录 nuget.org,在 Microsoft 帐户中,全名是带有变音符号的
<given_name> <surname>
。当然,带有变音符号的<given_name> <surname>
也是行不通的。
所以,我尝试了最后一种可能的组合 -
<surname> <given_name>
与变音符号,然后 dotnet nuget push
成功了。