我有一个 Excel 插件项目,该项目是几年前在 Visual Studio 2008 中创建的。它需要进行一些更改,因此我已升级到 Visual Studio 2010(我能够使用的唯一 IDE)。不确定这是否导致问题,但它是背景信息。
当我检查代码并编译它时,我收到错误消息“错误 1 无法在证书存储中找到清单签名证书”。
谁能告诉我这意味着什么以及如何解决?
您需要将该证书重新添加到您的计算机或选择另一个证书。
要选择另一个证书或重新创建一个证书,请转到项目的属性页面,单击签名选项卡,然后
点击从商店中选择
点击从文件中选择
点击创建测试证书
一旦完成其中任何一个,您应该能够再次构建它。
我发现 this solution 为我解决了这个问题:删除您的 *.csproj
中属于以下内容的所有条目:
<manifestcertificatethumbprint>...</manifestcertificatethumbprint>
<manifestkeyfile>...</manifestkeyfile>
<generatemanifests>...</generatemanifests>
<signmanifests>...</signmanifests>
一个快速的解决方案是取消选中“签署 ClickOnce 清单”:项目 ->(项目名称)属性 -> 签名选项卡
Sign the ClickOnce manifests
和 Sign the assembly
复选框才能解决此问题。我根本没有使用任何签名。
最初创建项目时,单击一次签名证书已添加到项目属性的签名选项卡上。这会在您构建时对单击一次清单进行签名。从那时到现在,该证书不再可用。要么这不是您最初构建它的机器,要么它以某种方式被清理了。您需要将该证书重新添加到您的计算机或选择另一个证书。
Signing
在垂直标签中 >点击Create test certificate
。并且不要忘记提交新创建的文件 You.Project_TemporaryKey.pfx
,因为 .pfx
文件是 often ignored。
添加新证书为我解决了这个问题。属性页 -> 签名 -> 点击创建测试证书
确保将 .pfx
个文件提交到存储库。
我刚刚在我的默认 .gitignore
中找到了 *.pfx
。评论它(由 #
)并提交更改。然后拉存储库并重建。
删除这篇文章中提到的这些条目:http://manfredlange.blogspot.ca/2008/03/visual-studio-unable-to-find-manifest.html。还要从项目根目录中删除 .snk 或 .pfx 文件。
不要忘记将这些更改推送到 GitHub,因为 Jenkins 仅从 GitHub 拉取源代码。
VS2015update3 仍然会出现 .csproj 文件中错误的剩余条目的问题,并且如果您尝试将签名证书更改为不同的签名证书(即使这是使用证书选择下拉列表中的“新”选项生成的证书),也会发生这种情况) .已接受答案中的建议(标记为未签名、保存、卸载项目、编辑 .csproj、删除与旧证书/指纹/密钥相关的属性并重新加载项目、设置证书)是可靠的。
我创建了一个新密钥,我必须在 csproj 中搜索旧密钥并对其进行重构。
Project's properties page
中,您可以转到Signing tab
,然后取消选中“签署 ClickOnce 清单”复选框。