ChatGPT解决这个技术问题 Extra ChatGPT

为什么我的 Excel 插件中出现“无法在证书存储中找到清单签名证书”?

我有一个 Excel 插件项目,该项目是几年前在 Visual Studio 2008 中创建的。它需要进行一些更改,因此我已升级到 Visual Studio 2010(我能够使用的唯一 IDE)。不确定这是否导致问题,但它是背景信息。

当我检查代码并编译它时,我收到错误消息“错误 1 无法在证书存储中找到清单签名证书”。

谁能告诉我这意味着什么以及如何解决?


C
CodeCaster

您需要将该证书重新添加到您的计算机或选择另一个证书。

要选择另一个证书或重新创建一个证书,请转到项目的属性页面,单击签名选项卡,然后

点击从商店中选择

点击从文件中选择

点击创建测试证书

一旦完成其中任何一个,您应该能够再次构建它。


Project's properties page 中,您可以转到 Signing tab,然后取消选中“签署 ClickOnce 清单”复选框。
@RubensMariuzzo - 如果你真的想签名就不行
取消选中对于 Office 加载项是不可能的,并且将被重新检查。
如何在构建服务器上完成“创建测试证书”操作?
W
Wernight

我发现 this solution 为我解决了这个问题:删除您的 *.csproj 中属于以下内容的所有条目:

<manifestcertificatethumbprint>...</manifestcertificatethumbprint>
<manifestkeyfile>...</manifestkeyfile>
<generatemanifests>...</generatemanifests>
<signmanifests>...</signmanifests>

当应用程序曾经是 ClickOnce 但不再是 ClickOnce 时,这是必要的(签名选项卡中的复选框灰显)
也为我工作。显然,我们在项目文件中进行的一些实验中存在一些必须手动清理的剩余物。顺便说一句 - 我还必须从项目中删除 .snk 文件。所以对我来说是:删除.snk,禁用签名,编辑项目文件,重新加载项目,并启用签名。
如果您曾经检查过 ClickOnce 然后切换到 Sign Assembly,则显然需要。
这是最好的答案。
取消选中“签署 ClientOnce 清单”并不总是有效。解决方案是从您的 csproj 文件中删除上述行
R
Rudy

一个快速的解决方案是取消选中“签署 ClickOnce 清单”:项目 ->(项目名称)属性 -> 签名选项卡


我必须取消选中项目属性中签名选项卡下的 Sign the ClickOnce manifestsSign the assembly 复选框才能解决此问题。我根本没有使用任何签名。
G
Gardner

最初创建项目时,单击一次签名证书已添加到项目属性的签名选项卡上。这会在您构建时对单击一次清单进行签名。从那时到现在,该证书不再可用。要么这不是您最初构建它的机器,要么它以某种方式被清理了。您需要将该证书重新添加到您的计算机或选择另一个证书。


“您需要将该证书重新添加到您的机器或选择另一个证书。”如果您知道如何添加证书,那么在此线程中说明操作方法或指向此线程中操作方法的链接将非常有帮助。照原样,您的回答只是答案的一半。
项目属性页面 > Signing 在垂直标签中 >点击Create test certificate。并且不要忘记提交新创建的文件 You.Project_TemporaryKey.pfx,因为 .pfx 文件是 often ignored
我认为这个解决方案是唯一适合 Visula Studio Office 项目的解决方案。
m
moglimcgrath

添加新证书为我解决了这个问题。属性页 -> 签名 -> 点击创建测试证书


有没有办法在构建服务器上执行此操作(通过命令行)?
A
ApceH Hypocrite

确保将 .pfx 个文件提交到存储库。

我刚刚在我的默认 .gitignore 中找到了 *.pfx。评论它(由 #)并提交更改。然后拉存储库并重建。


J
Jirong Hu

删除这篇文章中提到的这些条目:http://manfredlange.blogspot.ca/2008/03/visual-studio-unable-to-find-manifest.html。还要从项目根目录中删除 .snk 或 .pfx 文件。

不要忘记将这些更改推送到 GitHub,因为 Jenkins 仅从 GitHub 拉取源代码。


s
simon coleman

VS2015update3 仍然会出现 .csproj 文件中错误的剩余条目的问题,并且如果您尝试将签名证书更改为不同的签名证书(即使这是使用证书选择下拉列表中的“新”选项生成的证书),也会发生这种情况) .已接受答案中的建议(标记为未签名、保存、卸载项目、编辑 .csproj、删除与旧证书/指纹/密钥相关的属性并重新加载项目、设置证书)是可靠的。


B
Bhargav Rao

我创建了一个新密钥,我必须在 csproj 中搜索旧密钥并对其进行重构。