发布 .NET Core 时如何解决 PFX 签名不支持错误

Posted

技术标签:

【中文标题】发布 .NET Core 时如何解决 PFX 签名不支持错误【英文标题】:How to work around the PFX signing not supported error when publishing .NET Core 【发布时间】:2018-06-29 16:07:07 【问题描述】:

我一直在尝试使用 PFX 文件对程序集进行签名。一切正常,我在 Visual Studio 中访问了属性/签名,但每当我运行 dotnet publish 命令时,我都会收到以下错误:

C:\Program Files\dotnet\sdk\2.1.201\Microsoft.Common.CurrentVersion.targets(3210,5):.NET Core 不支持错误 PFX 签名

我一直在寻找解决此问题的方法,但到目前为止没有运气。

【问题讨论】:

github.com/dotnet/cli/issues/6911 【参考方案1】:

所以我想我应该使用 SNK 签名而不是 PFX,因为 PFX 不再支持它。

【讨论】:

【参考方案2】:
    从 PFX 导出公钥:sn -p key.pfx key.pub 通过将<DelaySign>true</DelaySign> 添加到项目文件或AssemblyDelaySignAttribute 为您的程序集启用延迟签名。使用第 1 步中的公钥而不是 PFX 进行签名。 构建后重新签署您的程序集:sn -R assembly.dll key.pfx

https://docs.microsoft.com/en-us/dotnet/framework/tools/sn-exe-strong-name-tool

【讨论】:

以上是关于发布 .NET Core 时如何解决 PFX 签名不支持错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 makecert/pvk2pfx 时,ClickOnce 签名者的证书对签名无效

如何使用 .pfx 和 .cer 文件创建自签名证书?

受域保护的 pfx 需要啥密码?

.Net 通过OpenSSL来生成.Net Core WebApi使用的pfx

导入pfx时无法导入以下密钥文件错误

如何从 pfx / cer 创建 snk?