添加引用时调用 COM 组件返回了错误 HRESULT E_FAIL

tee*_*eba 5 .net visual-studio

在 VS-2017 中,单击“添加引用”时出现错误:

"Error HRESULT E_FAIL has been returned from a call to a COM component."
Run Code Online (Sandbox Code Playgroud)

因此我无法

  1. 添加任何参考并
  2. 通过 DB_First 方法更新我的数据库

此问题是在上次更新 Windows 后开始出现的。

小智 9

什么对我有用

  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

它应该重建,您现在可以添加引用!

  • 我现在在 VS2022 中遇到这个问题,并且任何子目录中都没有这样的目录 \\Common7\IDE\PublicAssemblies\ 甚至 \PublicAssemblies\ :( (2认同)

tee*_*eba 3

这个链接对我帮助很大:

添加引用引发错误:调用 COM 组件已返回错误 HRESULT E_FAIL

脚步:

  1. 以管理员身份打开“VS 2017 的开发人员命令提示符”

  2. CD 进入“C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies”

  3. 运行“gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll”之后,以管理员身份关闭并重新打开“VS 2017 的开发人员命令提示符”

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

  5. 运行 -> 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
    
    Run Code Online (Sandbox Code Playgroud)

重新启动电脑即可解决问题