调用Add Reference时返回了错误HRESULT E_FAIL,原因是COM组件出错。

5
在VS-2017中,当我点击“添加引用”时,出现一个错误:
"Error HRESULT E_FAIL has been returned from a call to a COM component."

因此,我无法:

  1. 添加任何引用
  2. 通过DB_First Approach更新我的数据库

这个问题是在最近Windows的更新之后开始出现的。

5个回答

8

对我起作用的方法:

  1. 以管理员权限打开VS 2019开发人员命令提示符
  2. 在开发人员命令提示符中输入以下内容

cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\PublicAssemblies

您的路径可能会有所不同,需要进行检查。

  1. 在开发人员命令提示符中输入以下内容

gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll

应该会重新生成,现在您可以添加引用了!


2
我现在在VS2022中遇到了这个问题,但是在任何子目录中都没有\Common7\IDE\PublicAssemblies\或者\PublicAssemblies\这样的目录:( - nickornotto

3
这个链接对我很有帮助: 添加引用时出现错误:调用COM组件返回错误HRESULT E_FAIL

Steps:

  1. Open "Developer Command Prompt for VS 2017" as Admin

  2. CD into "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies"

  3. Run "gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll" After that close and reopen "Developer Command Prompt for VS 2017" as Admin

  4. cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64"

  5. Run -> gacutil.exe /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.Shell.Interop.11.0.dll"

    Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.0
    Copyright (c) Microsoft Corporation. All rights reserved.
    
    Assembly successfully added to the cache
    

Restarting your PC will solve the problem


2

当我尝试在VS2022中打开新克隆的解决方案(之前是在VS2019中开发的),出现了很多缺失引用的问题,其中大部分都失败于AutoMapper,导致上述错误。我将有问题的项目从备份的解决方案中复制出来重新构建,然后所有问题都在VS2022中开始正常工作。


1

对于VS企业版,它有效(在开发者命令提示符中运行): C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.7.1 Tools \ x64> gacutil.exe / i“C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Enterprise \ Common7 \ IDE \ PublicAssemblies \ Microsoft.VisualStudio.Shell.Interop.11.0.dll


0

对我有效的方法

以管理员权限打开 Visual Studio 2019 的开发人员命令提示符 在开发人员命令提示符中输入以下内容 cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\PublicAssemblies

路径可能会有所不同,请核实

在开发人员命令提示符中输入以下内容 gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll

Microsoft(R) .NET 全局程序集缓存实用程序。版本4.0.30319.0 版权所有(c) Microsoft Corporation。保留所有权利。

程序集已成功添加到缓存 enter image description here 现在应该重新构建,并且您现在可以添加引用了!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接