2009-09-22 374 views
8

我知道这不是一个编程问题,但它是一个编程工具的问题。错误HRESULT E_FAIL粘贴在Visual Studio中的引用

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

Error HRESULT E_FAIL has been returned from a call to a COM component

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

任何想法?

回答

5

Yikes,E_FAIL是最通用的COM错误,因为它实际上意味着COM函数返回失败。我猜不知道,visual studio 2008有一个损坏的COM对象。

您是否尝试过重新安装visual studio 2008以重新注册它的所有tlb和对象?

+0

它走了一会儿。也许这只是一个糟糕的一天... – Joe 2009-09-29 08:17:18

6

这是#1命中,显示了在谷歌VS 2010 paste reference E_FAIL之类的,所以我想我会分享这种解决方法:

不要通过在Solution Explorer中的上下文菜单中使用复制/粘贴引用。

相反:

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

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

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

+0

谢谢! 2009年我遇到了这个问题!我从那以后就不知道问题是什么。我无法验证这一点,也许别人谁有这个问题可以尝试你的答案。尽管有一个投票! – Joe 2012-06-21 09:08:02

+0

在那个副本引用意味着节省时间的设备,我认为只是添加引用,而不是卸载项目并复制文本,它仍然会更快。我想这取决于你需要复制多少参考。 – johnc 2015-12-10 23:21:59

相关问题