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

发布于 2024-08-05 14:57:02 字数 415 浏览 4 评论 0原文

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

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

调用 COM 组件返回了错误 HRESULT E_FAIL

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

有什么想法吗?

I know this isn't a programming question but it is a programming tool question.

In Visual Studio 2008 Team Edition (version 9.0 with .NET 3.5 SP1) when I copy and paste references from one csproj to another (with the context menu in the 'Solution Explorer' view) I get the following error:

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

This has only just started happening on my machine. I can only find this article about it, and it contains no solution.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沫尐诺 2024-08-12 14:57:02

这是在 Google 上显示的 VS 2010 粘贴引用 E_FAIL 等的排名第一的命中,所以我想我会分享这个解决方法:

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

相反:

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

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

显然,至少,使用环境变量的引用存在问题,如 这里(尽管在我的例子中,我遇到了不使用环境变量的引用的问题,并且在 Visual Studio 2010 中......)

This is the #1 hit that shows up on Google for VS 2010 paste reference E_FAIL and the like, so I thought I would share this workaround:

Don't use copy/paste references via the context menu in Solution Explorer.

Instead:

  1. Use the context menu to unload the project to copy references from.
  2. Edit the project file (.csproj; it's just XML).
  3. Find the
    reference(s) you are interested in and copy the <Reference> XML
    node(s).
  4. Unload the project to copy the reference into.
  5. Edit the project file (.csproj)
  6. Paste the reference copied in the previous step into appropriate location. You need to look for
    the <ItemGroup> node containing something like <Reference Include="mscorlib" />, and paste your reference just above it.
  7. Close both .csproj files, saving the just-modified target one as well.
  8. Reload both projects via Solution Explorer context-menu.

Your reference is now copied into the target project.

Apparently, at the very minimum, there is a problem with references that use environment variables, as described here (although in my case, I was having a problem with references that did not use environment variables, and in Visual Studio 2010...)

小巷里的女流氓 2024-08-12 14:57:02

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

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

Yikes , E_FAIL is the most generic COM error , since it literally means a COM function returned fail. I would guess that somehow , visual studio 2008 has a corrupted COM object somewhere.

Have you tried reinstalling visual studio 2008 just to get it to re-register all its tlb's and objects ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文