为啥我的 Excel 插件中出现“无法在证书存储中找到清单签名证书”?
Posted
技术标签:
【中文标题】为啥我的 Excel 插件中出现“无法在证书存储中找到清单签名证书”?【英文标题】:Why am I getting "Unable to find manifest signing certificate in the certificate store" in my Excel Addin?为什么我的 Excel 插件中出现“无法在证书存储中找到清单签名证书”? 【发布时间】:2011-05-29 21:09:12 【问题描述】:我有一个 Excel 插件项目,该项目是几年前在 Visual Studio 2008 中创建的。它需要进行一些更改,因此我已升级到 Visual Studio 2010(我能够使用的唯一 IDE )。不确定这是否是导致问题的原因,但这是背景信息。
当我检查代码并编译它时,我收到错误消息“错误 1 无法在证书存储中找到清单签名证书。”
谁能告诉我这是什么意思以及如何解决?
【问题讨论】:
【参考方案1】:您需要将该证书重新添加到您的计算机或选择另一个证书。
要选择另一个证书或重新创建一个证书,请转到项目的属性页面,单击签名选项卡,然后
点击从商店中选择 点击从文件中选择 点击创建测试证书一旦完成其中任何一个,您应该能够再次构建它。
【讨论】:
在Project's properties page
中,您可以转到Signing tab
,然后取消选中“签署 ClickOnce 清单”复选框。
@RubensMariuzzo - 如果你真的想签名就不要这样做
Office 加载项无法取消勾选,将重新勾选。
如何在构建服务器上完成“创建测试证书”操作?【参考方案2】:
我发现this solution 为我解决了这个问题:删除您的*.csproj
中所有属于:
<manifestcertificatethumbprint>...</manifestcertificatethumbprint>
<manifestkeyfile>...</manifestkeyfile>
<generatemanifests>...</generatemanifests>
<signmanifests>...</signmanifests>
【讨论】:
当应用程序曾经是 ClickOnce 但不再是 ClickOnce 时,这是必要的(签名选项卡中的复选框灰显) 也为我工作。显然,项目文件中有一些我们在其上进行的一些实验的残留物,必须手动清理。顺便说一句 - 我还必须从项目中删除 .snk 文件。所以对我来说是:删除 .snk、禁用签名、编辑项目文件、重新加载项目并启用签名。 如果您曾经检查过 ClickOnce 然后切换到 Sign Assembly,则显然需要。 这是最好的答案。 取消选中“签署 ClientOnce 清单”并不总是有效。解决方案是从您的 csproj 文件中删除上述行【参考方案3】:一个快速的解决方案是取消选中“签署 ClickOnce 清单”:项目 ->(项目名称)属性 -> 签名选项卡
【讨论】:
我必须取消选中项目属性中签名选项卡下的Sign the ClickOnce manifests
和 Sign the assembly
复选框才能解决此问题。我根本没有使用任何签名。【参考方案4】:
最初创建项目时,在项目属性的签名选项卡上添加了单击一次签名证书。这会在您构建单击一次清单时对其进行签名。从那时到现在,该证书不再可用。要么这不是您最初构建它的机器,要么它以某种方式被清理了。您需要将该证书重新添加到您的计算机或选择另一个证书。
【讨论】:
"您需要将该证书重新添加到您的计算机或选择另一个证书。"如果您知道如何添加证书,那么在此线程中说明操作方法或指向此线程中操作方法的链接将非常有帮助。照原样,你的回答只是一半的答案。 项目属性页面 > 垂直选项卡中的Signing
> 单击Create test certificate
。并且不要忘记提交一个新创建的文件You.Project_TemporaryKey.pfx
,因为.pfx
文件是often ignored。
我认为这个解决方案是唯一适合 Visula Studio Office 项目的解决方案。【参考方案5】:
添加新证书为我解决了这个问题。属性页 -> 签名 -> 点击创建测试证书
【讨论】:
有没有办法在构建服务器上执行此操作(通过命令行)?【参考方案6】:确保将.pfx
文件提交到存储库。
我刚刚在我的默认.gitignore
中找到了*.pfx
。
评论它(#
)并提交更改。然后拉存储库并重建。
【讨论】:
【参考方案7】:删除这篇文章中提到的这些条目:http://manfredlange.blogspot.ca/2008/03/visual-studio-unable-to-find-manifest.html。
同时从项目根目录中删除 .snk 或 .pfx 文件。
不要忘记将这些更改推送到 GitHub,因为 Jenkins 只从 GitHub 拉取源代码。
【讨论】:
【参考方案8】:VS2015update3 仍然会出现 .csproj 文件中错误的剩余条目的问题,如果您尝试将签名证书更改为不同的签名证书(即使这是使用证书中的“新”选项生成的证书),也会发生此问题选择下拉菜单)。 已接受答案中的建议(标记为未签名、保存、卸载项目、编辑 .csproj、删除与旧证书/指纹/密钥相关的属性并重新加载项目、设置证书)是可靠的。
【讨论】:
【参考方案9】:我创建了一个新密钥,我必须在 csproj 中搜索旧密钥并对其进行重构。
【讨论】:
以上是关于为啥我的 Excel 插件中出现“无法在证书存储中找到清单签名证书”?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 Access VBA 在 Excel 中添加小计在一个数据库中工作,但在另一个数据库中出现错误 1004?
Office-JS 插件在多个打开的 Excel 中出现问题
Office插件不会出现在本地桌面版的Excel中 - 清单问题?
为啥我的 Gradle 构建失败并出现“未找到插件 [id: 'org.flywaydb.enterprise.flyway', version: '6.5.0']”错误?