更新服务引用时如何解决“错误 HRESULT E_FAIL 已从对 COM 组件的调用返回”

问题描述

我有一个 WCF 服务,我正在尝试为其编写客户端。当我添加服务引用时,没有问题。如果我更新引用,我会收到“错误 HRESULT E_FAIL 已从对 COM 组件的调用返回错误。我的服务正在运行(未处于调试模式)。我对此有两个主要问题,到目前为止我还没有从我的研究中找到太多东西。

  1. 这个错误究竟意味着什么?
  2. 如何开始排查问题?我没有足够的信息,但我不知道在哪里可以找到与问题相关的任何日志或数据。

对于我的服务,这只发生在 Visual Studio 2017 和 2019 中。如果我在 2015 年创建客户端并更新引用,则没有问题。

感谢您帮助我找出如何追踪此问题。

解决方法

在假期休假一段时间后,我今天又回到了这个问题上,并找到了问题所在。我有一个我使用的自定义代理代码生成器,但它在 2017 年或 2019 年未正确注册。我将 .pkgdef 编译到 vsix 并构建时间,将生成器注册到 VS 的本地注册表中。

您可以在此处找到有关注册和取消注册 VSPackage 的更多信息:https://docs.microsoft.com/en-us/visualstudio/extensibility/registering-and-unregistering-vspackages?view=vs-2019