【问题标题】:Error HRESULT E_FAIL when pasting references in Visual Studio在 Visual Studio 中粘贴引用时出现错误 HRESULT E_FAIL
【发布时间】:2009-09-22 09:43:58
【问题描述】:

我知道这不是编程问题,而是编程工具问题。

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

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

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

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    这是在 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. 通过解决方案资源管理器上下文菜单重新加载两个项目。

    您的参考现在被复制到目标项目中。

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

    【讨论】:

    • 谢谢!我在 2009 年就遇到了这个问题!从那以后,我继续前进,不记得问题出在哪里。我无法验证这一点,也许有此问题的其他人可以尝试您的答案。不过要投赞成票!
    • 因为复制引用是一种节省时间的设备,我认为添加引用仍然比卸载项目并复制文本更快。我想这取决于您需要复制多少引用。
    • 使用 VS 2012 无需卸载项目 - 加载更改已经足够智能。
    • 作品 100% 需要 2 分钟
    【解决方案2】:

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

    您是否尝试过重新安装 Visual Studio 2008 只是为了让它重新注册其所有 tlb 和对象?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-10
      • 1970-01-01
      • 2010-10-01
      • 2012-04-05
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多