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

时间:2009-09-22 09:43:59

标签: c# visual-studio visual-studio-2008 csproj

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

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

  

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:9)

这是Google在VS 2010 paste reference E_FAIL之类显示的排名第一,所以我想我会分享这个解决方法:

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

相反:

  1. 使用上下文菜单卸载项目以复制引用。
  2. 编辑项目文件(.csproj;它只是XML)。
  3. 找到 您感兴趣的参考文献并复制<Reference> XML (多个)节点。
  4. 卸载项目以将引用复制到。
  5. 编辑项目文件(.csproj)
  6. 将上一步中复制的引用粘贴到适当的位置。你需要寻找     <ItemGroup>节点包含<Reference Include="mscorlib" />之类的内容,并将您的引用粘贴在其上方。
  7. 关闭两个.csproj文件,同时保存刚刚修改过的目标文件。
  8. 通过Solution Explorer上下文菜单重新加载这两个项目。
  9. 您的参考现已复制到目标项目中。

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

答案 1 :(得分:5)

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

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