在尝试编译使用代码签名的c#项目时,我在VS2015中遇到以下错误。我在VS2013中没有收到此错误。
此处任何地方都没有关于此错误的信息。
答案 0 :(得分:2)
我有这个问题。您可以打开CommonAssemblyInfo.cs并删除行[assembly: AssemblyKeyFile(@"C:\KeyFile.snk")]
:)
答案 1 :(得分:1)
在构建项目时,我在 VS 2019 中或多或少遇到了相同的问题,但使用 .snk
文件,对于包含来自 datalust Superpower 的源代码的项目,我需要评估和调试:
CommonAssemblyInfo.cs
不包含任何行 [assembly: AssemblyKeyFile(@"....snk")]
答案 2 :(得分:0)
您可以尝试重新导出您的pfx并确保清除“包含所有证书”选项以排除可能导致某些问题的完整证书链。
如果它没有帮助使用AssemblyKeyName(“xxx”)而不是AssemblyKeyFile。首先应在构建服务器或开发计算机上执行命令 sn.exe -i key.pfx xxx ,以将密钥安装到CSP中。 (我猜你的错误信息只是由AssemblyKeyFile属性引起的。)
请注意,您无需使用您的可信证书(由某些证书颁发机构签名)进行汇编(或强名称)签名。强名命的程序集可以进行数字签名,以便以后进行身份验证/安全。
因此,如果使用强名称工具生成新密钥,也可以避免此问题:
sn -k keyPair.snk
并仅使用您当前的.pfx signtool。
答案 3 :(得分:0)
如何签署简化的程序集 (TLDR;)
如果您想为程序集保留代码签名,您可以这样做:
参考文档:
https://docs.microsoft.com/en-us/dotnet/standard/assembly/create-public-private-key-pair
https://docs.microsoft.com/en-us/dotnet/framework/tools/sn-exe-strong-name-tool
正如 Microsoft 声明的那样:不要依赖强名称来确保安全。它们仅提供唯一标识。
答案 4 :(得分:-1)
要使用符号,请勿为密钥创建密码。