Visual studio 为什么我的Excel加载项中出现“无法在证书存储中找到清单签名证书”?

Visual studio 为什么我的Excel加载项中出现“无法在证书存储中找到清单签名证书”?,visual-studio,vsto,excel-2007,Visual Studio,Vsto,Excel 2007,我有一个Excel加载项项目,它是几年前在VisualStudio2008中创建的。它需要做一些更改,所以我已经升级到VisualStudio2010,这是我唯一可以使用的IDE。不确定这是否导致问题,但这是背景信息 当我签出代码并编译它时,我得到一个错误,错误1无法在证书存储中找到清单签名证书 有谁能告诉我这意味着什么以及如何修复它吗?最初创建项目时,在项目属性的“签名”选项卡上添加了“单击一次”签名证书。这将在构建时对单击一次清单进行签名。从那时到现在,该证书不再可用。要么这不是你最初建造它

我有一个Excel加载项项目,它是几年前在VisualStudio2008中创建的。它需要做一些更改,所以我已经升级到VisualStudio2010,这是我唯一可以使用的IDE。不确定这是否导致问题,但这是背景信息

当我签出代码并编译它时,我得到一个错误,错误1无法在证书存储中找到清单签名证书


有谁能告诉我这意味着什么以及如何修复它吗?

最初创建项目时,在项目属性的“签名”选项卡上添加了“单击一次”签名证书。这将在构建时对单击一次清单进行签名。从那时到现在,该证书不再可用。要么这不是你最初建造它的机器,要么它被清理干净了。您需要将该证书重新添加到您的计算机或选择其他证书。

您需要将该证书重新添加到您的计算机或选择其他证书

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

单击从商店中选择 单击“从文件中选择” 单击创建测试证书 完成上述任一操作后,您应该能够再次构建它。

我找到了解决问题的方法:删除*.csproj中属于以下内容的所有条目:

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

一个快速解决方案是取消选中ClickOnce清单中的签名:Project->Project nameProperties->Signing Tab

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

删除此帖子中提到的这些条目:

还要从项目根目录中删除.snk或.pfx文件

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

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

我刚刚在默认的.gitignore中找到了*.pfx。
对其进行注释并提交更改。然后拉取存储库并重建。

VS2015update3仍然会出现.csproj文件中的错误遗留项问题,如果您尝试更改另一个签名证书,也会出现此问题,即使该证书是使用证书选择下拉列表中的“新建”选项生成的。
接受答案标记中的建议为未签名、保存、卸载项目、编辑.csproj、删除与旧证书相关的属性/指纹/密钥&重新加载项目、设置证书是可靠的。

我创建了一个新密钥,我必须在csproj中搜索旧密钥并重构它

您需要将该证书重新添加到计算机或选择其他证书。如果您知道如何添加证书,那么在这个线程中声明how或者在这个线程中指向how的链接将非常有用。按原样,您的答案只是半个答案。项目属性页>登录垂直选项卡>单击创建测试证书。不要忘记提交一个新创建的文件You.Project_TemporaryKey.pfx,因为.pfx文件是。我认为这个解决方案是唯一适合Visula Studio Office项目的解决方案。在项目的“属性”页面中,您可以转到“签名”选项卡,然后取消选中“签署ClickOnce清单”复选框。@RubensMariuzzo-如果您真的想签署它,则不需要取消选中Office加载项是不可能的,将被重新选中。如何在生成服务器上执行“创建测试证书”操作?当应用程序以前单击一次,但不再在“签名”选项卡中灰显复选框时,这是必要的,对我也适用。显然,项目文件中有一些我们在上面做的实验遗留下来的东西,必须手动清理。顺便说一句,我还必须从项目中删除.snk文件。所以对我来说,它是:删除.snk,禁用签名,编辑项目文件,重新加载项目,并启用签名。如果您曾经选中ClickOnce,然后切换到签名程序集,显然需要。这是最好的答案。取消选中Clienton清单的签名并不总是有效的。解决方案是从csproj文件中删除所提到的行。我必须取消选中“对ClickOnce清单进行签名”和“在项目属性的“签名”选项卡下的“对程序集进行签名”复选框,以解决此问题。我根本没有使用任何签名。有没有办法通过命令行在生成服务器上执行此操作?