为什么我的Excel Addin中出现“无法在证书库中找到清单签名证书”?

时间:2010-12-23 09:32:03

标签: visual-studio vsto excel-2007

我有一个Excel加载项目,它是在Visual Studio 2008中创建的。它已经做了一些更改,因此我已升级到Visual Studio 2010(我能够使用的唯一IDE )。不确定这是否是导致问题的,但它是背景信息。

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

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

9 个答案:

答案 0 :(得分:239)

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

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

  • 点击从商店中选择
  • 点击从文件中选择
  • 点击创建测试证书

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

答案 1 :(得分:137)

我发现this solution解决了我的问题:删除*.csproj中属于的所有条目:

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

答案 2 :(得分:98)

让我走的快速解决方案是取消选中“签署ClickOnce清单”:项目 - &gt; (项目名称)属性 - &gt;签名标签

答案 3 :(得分:12)

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

答案 4 :(得分:12)

添加新证书可以解决此问题。属性页面 - &gt;签名 - &gt;单击“创建测试证书”

答案 5 :(得分:7)

确保将import javax.swing.JOptionPane; public class TreeNode { public static int eingabe(int eingabe) { if (eingabe > 0) { // Needed to reverse this evenSum1(eingabe, 0, 0); } else { evenSum2(eingabe, 0, 0); } return 0; } public static int evenSum2(int eingabe, int summe, int zaehler) { if (PevenSum(eingabe, summe, zaehler) == 0) { System.out.print("Die Summe aller geraden Zahlen ist: " + summe); return 0; } zaehler = zaehler - 2; summe = summe + zaehler; // Needed to change this to add rather than // subtract (subtracting a negative number // makes it positive) evenSum2(eingabe, summe, zaehler); return 1; } public static int evenSum1(int eingabe, int summe, int zaehler) { if (NevenSum(eingabe, summe, zaehler) == 0) { System.out.print("Die Summe aller geraden Zahlen ist: " + summe); return 0; } zaehler = zaehler + 2; summe = summe + zaehler; evenSum1(eingabe, summe, zaehler); return 1; } public static int NevenSum(int eingabe, int summe, int zaehler) { if (zaehler == eingabe || zaehler == (eingabe - 1)) { // Changed from // zaehler == // (eingabe + 1) return 0; } return 1; } public static int PevenSum(int eingabe, int summe, int zaheler) { if (zaheler == eingabe || zaheler == eingabe + 1) { // Can't compare the // sum, have to // compare counter // and eingabe return 0; } return 1; } public static void main(String[] args) { String eingabe; eingabe = JOptionPane.showInputDialog("Hier eine Zahl eingaben"); int zahl = Integer.parseInt(eingabe); eingabe(zahl); } } 个文件提交到存储库。

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

答案 6 :(得分:3)

  1. 删除此帖中提到的这些条目:http://manfredlange.blogspot.ca/2008/03/visual-studio-unable-to-find-manifest.html

  2. 同时从项目根目录中删除.snk或.pfx文件。

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

答案 7 :(得分:0)

.20spupj文件中的错误剩余条目问题仍然出现在VS2015update3中,如果您尝试更改另一个的签名证书也会出现(即使是使用&#39; new&#39生成的签名证书) ;证书选择下拉列表中的选项)。 接受答案中的建议(标记为未签名,保存,卸载项目,编辑.csproj,删除与旧证书/指纹/键和重新加载项目相关的属性,设置证书)是可靠的。

答案 8 :(得分:0)

我创建了一个新密钥,我不得不在csproj中搜索旧密钥并进行重构。