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

Joe*_*Joe 9 c# csproj visual-studio-2008 visual-studio

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

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

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

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

有任何想法吗?

Opt*_*max 9

这是第一次出现在谷歌上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上下文菜单重新加载这两个项目.

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

显然,在最起码,有与使用环境变量的引用问题,如所描述这里(虽然在我的情况,我是有引用一个问题,即不使用环境变量,并在Visual Studio 2010中...)


And*_*ith 5

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

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