【问题标题】:VS 2005 Publish - Build Failed - SignTool reported 'Keyset does not exist' - System cannot find file specified (Exception from HRESULT:0X80070002)VS 2005 发布 - 构建失败 - SignTool 报告“密钥集不存在” - 系统找不到指定的文件(HRESULT 异常:0X80070002)
【发布时间】:2017-10-23 08:06:39
【问题描述】:

VS 2005 发布 - 构建失败 - SignTool 报告“密钥集不存在” -

从 VS 2005 发布 VB 应用程序时遇到此错误?

【问题讨论】:

  • 这里有什么问题?
  • 标题就是问题。错误!!

标签: visual-studio-2005 clickonce code-signing


【解决方案1】:

我已经发布了无数次我的 VB 应用程序,没有任何问题,但是有一天我遇到了这个棘手的错误。尽管存在签名证书,但视觉工作室无法找到它。我想这是 VS 偶尔显示的恐慌慢动作攻击之一。经过两个多小时的努力,终于解决了它,而无需按照某些网站的建议从我的应用程序的表单 n 文件等重新创建新的解决方案。

以前我也遇到过这个错误,但当时我通过创建一个新的测试证书解决了这个问题,尽管我必须在客户端机器上删除并重新安装我的应用程序才能进行新的发布,因为这是一个新证书。这次 Visual Studio 甚至不允许我创建新证书。我在尝试时遇到了这个令人讨厌的错误 - 系统找不到 Visual Studio 中指定的文件(HRESULT 中的异常:0X80070002)。当我尝试使用运行命令中的 certmgr.msc 检查我的证书时,我可以看到我的证书在本地当前用户的证书下的个人存储中。我还在受信任的证书文件夹下复制了我的证书,但无济于事。

做了四件事后,我的问题终于解决了,我再次愉快地发布了相同的解决方案。

1. 关闭您的解决方案。删除解决方案的 bin 和 obj 文件夹。从 .csproj 文件中删除以下标记行。将这四行复制到某处作为备份。

...
...
...
...标志清单>

在 VS 中重新打开您的解决方案并清理并重新构建。增加版本号后尝试发布。它显示未找到证书的不同错误。现在关闭 VS。将这四行重新添加回 csproj 文件中它们最初位于该文件中的位置。 2. 在 VS 中重新打开您的项目,并在“签名”选项卡中的“项目属性”下,取消选中“Sign the Click Once manifests”并再次重新检查。对 Sign the assembly 复选框也执行相同的操作。选择最新的 .pfx 密钥。节省。关闭并重新打开项目属性。 (这个 pfx 是我们创建新证书时生成的密钥。检查项目文件夹中 .pfx 的日期,以了解您创建的最后一个并使用那个。我个人在创建新证书时不提供任何密码证书到期。) 此外,还可以使用 certmgr.msc 控制台将个人存储中存在的证书添加到受信任的证书存储中。只需将您的 VS 应用程序颁发的证书从个人证书文件夹复制到证书管理器控制台面板中的受信任根证书(如果存在受信任的根授权存储) - 在运行命令中键入 certmgr.msc 后出现的屏幕。 3. 现在重新启动您的系统。是的,你没有看错。 4.在VS中再次打开你的项目。现在增加版本并尝试发布。瞧,发布很顺利。

PS : VS 2005 对清单级别所做的更改有点晚了。有时也会发生水晶报告问题:(。所以最好在这些更改之后给一些时间重新加载 VS。:) 步骤 1 就是为了提醒 Visual Studio 它需要一个证书以及它通常在本地密钥库中的哪个位置找到它。所以密钥库不存在错误没有意义:)!

请注意,我还尝试使用 MMC 运行命令的控制台管理单元,但我收到错误提示需要 Cryptographic Service Provider 来执行此操作并且它未安装在我的系统上。此外,我可以看到我的证书已经存在于个人证书存储中。它只是 Visual Studio 忘记了它的位置和位置。我在某处读到,如果开发机器的发布太多/多个,可能会发生这种情况。 :D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多