VSCode 2019 “对COM组件的调用返回了错误HRESULT E_FAIL” 的解决

问题:

VSCode使用 “MFC应用”模板创建项目时,出现:文件夹打不开,并弹出 “对COM组件的调用返回了错误HRESULT E_FAIL” 错误  

 解决方案:

1. 以管理员身份打开Developer Command Prompt for VS 2019(vs2019开发人员命令提示符)

【注意】一定是以 Visual Studio 的管理员身份打开的:按下Window键,打开菜单栏,搜索Visual Studio ,在文件夹中找到对应的 命令行:

 2.  命令行路径 进入 到VS2019安装目录 的 PublicAssemblies 文件路径下

 输入 : gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll  指令

3.  此时,可能会有提示 " gacutil不是批处理文件,不是内部或外部的命令,原因是没有找到该文件 "

解决方案:将gacutil路径添加到环境变量上

此电脑,右键-》属性-》高级系统设置-》环境变量-》系统环境变量,path,编辑-》新建,找到gacutil路径-》将路径复制到环境变量中,点击确定 

gacutil 的路径一般是 : 

加入 环境变量后重启VSCode 后,

再一次 在 管理员身份下的 Developer Command Prompt for VS 2019 命令行中  重复执行   gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll  指令

理论上,应该就直接导入了,但是:

若刚刚的步骤中发现:电脑上就没有 gacutil  这个 gacutil.exe 这个文件 ,那么应该是安装 Visual Studio 时少装了点东西,现在补上也来得及:

(1)修改 Visual Studio Installer 的一些配置:

(1.1) 如何打开Visual Studio Installer:  打开Visual Studio,编辑器的菜单栏,找到【工具】,打开下拉框,选择【获取工具和功能】

ref : 如何打开 Visual Studio Installer 安装页面_堕天使龙龙的博客-CSDN博客

(2)

(3) 

 (4)若发现自己一个.NET Framework SDK 都没有选择,那么选一个

 比如我这选了圈起来的SDK

(5)然后就能在 “C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools” 这个路径下看到gacutil.exe了。


到这儿应该就可以了,如果还会提醒gacutil不是内部命令的话,再把gacutil.exe所在的““C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools”路径添加到环境变量path中。 【添加完环境变量后,重启visual studio 才会生效】

(6) 但是,但是,还是不行,还TM在命令行中提示 找不到 gacutil 命令,那就把 vs2019的安装路径也放到环境变量中 :

导入dll成功会出现下面的提示:


 

 然后,重启Visual Studio ,新建 MFC应用,如果  还是  打不开文件夹,提示COM ... 错误,那就 检查下 你的文件夹名字命名是否有问题:

(1)不允许出现下划线 

(2)不允许文件夹以数字开头

以上


参考博客: 

VS2019创建MFC项目时出现无法打开文件对话框,后显示HRESULT_FAIL的对话框 - guide123 - 博客园 (cnblogs.com)

VS2019中gacutil不是内部或外部命令,也不是可运行的程序_gacutil' 不是内部或外部命令,也不是可运行的程序_舒心远航的博客-CSDN博客

如何打开 Visual Studio Installer 安装页面_堕天使龙龙的博客-CSDN博客

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值