在Visual Studio中粘贴引用时出现错误HRESULT E_FAIL

我知道这不是一个编程问题,但它是一个编程工具问题。

在Visual Studio 2008 Team Edition(带有.NET 3.5 SP1的9.0版)中,当我将引用从一个csproj复制并粘贴到另一个csproj时(使用“解决方案资源管理器”视图中的上下文菜单),我收到以下错误:

错误HRESULT E_FAIL已从调用COM组件返回

这刚刚开始在我的机器上发生。 我只能找到关于它的这篇文章,它不包含任何解决方案。

有任何想法吗?

Yikes,E_FAIL是最通用的COM错误,因为它确实意味着COM函数返回失败。 我猜想,不知何故,visual studio 2008在某个地方有一个损坏的COM对象。

您是否尝试重新安装visual studio 2008只是为了让它重新注册所有的tlb和对象?

这是在Google for VS 2010 paste reference E_FAIL等上出现的排名第一,所以我想我会分享这个解决方法:

不要通过解决方案资源管理器中的上下文菜单使用复制/粘贴引用。

代替:

  1. 使用上下文菜单卸载项目以复制引用。
  2. 编辑项目文件(.csproj;它只是XML)。
  3. 找到您感兴趣的引用并复制 XML节点。
  4. 卸载项目以将引用复制到。
  5. 编辑项目文件(.csproj)
  6. 将上一步中复制的引用粘贴到适当的位置。 您需要查找包含类的节点,并在其上方粘贴您的引用。
  7. 关闭两个.csproj文件,同时保存刚刚修改过的目标文件。
  8. 通过Solution Explorer上下文菜单重新加载这两个项目。

您的引用现在已复制到目标项目中。

显然,至少,使用环境变量的引用存在问题,如此处所述(尽管在我的情况下,我遇到了没有使用环境变量的引用的问题,并且在Visual Studio 2010中…)