操作失败,由于库未注册,对IID接口的COM组件上的QueryInterface调用失败。
操作失败,由于库未注册,对IID接口的COM组件上的QueryInterface调用失败。
在将MyApp.Visible设置为false的这一行,我遇到了以下未处理的异常:
System.InvalidCastException类型的未处理异常在GridComplete.exe中发生
附加信息: 无法将类型为'Microsoft.Office.Interop.Excel.ApplicationClass'的COM对象强制转换为接口类型'Microsoft.Office.Interop.Excel._Application'。此操作失败,因为针对接口IID '{000208D5-0000-0000-C000-000000000046}'的COM组件的QueryInterface调用失败,原因是出现了以下错误: 库未注册。(来自HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)的异常)。
**我似乎无法弄清楚发生了什么。我尝试从注册表中删除键并重新运行,但没有成功。我还完全卸载了Microsoft Office,然后重新安装。我不确定还能做什么来解决这个问题。
这个问题的原因是注册表中的版本信息不正确。我曾经安装了Office 365,后来卸载了它,并安装了Office 2010。因此注册表中有两个项目,但只有一个可以正常工作。
首先,你可以打开注册表编辑器,但是务必通过“文件 -> 导出 -> 选择导出范围为全部”进行备份。
其次,你可以通过“Ctrl + F”查找项“{000208D5-0000-0000-C000-000000000046}”,选择它并获取“TypeLib”的值,记住这个值。在我的电脑上,它是1.7,我猜它是为了Office 2010,即当前安装的Office。
然后进入HKEY_CLASSES_ROOT\TypeLib,选择项“{00020813-0000-0000-C000-000000000046}”并展开,我有两个子项,一个是1.7,另一个是空的1.9。在我删除1.9之后,程序可以正常工作。
相关信息:[中文链接](https://answers.microsoft.com/zh-hans/windows/forum/all/%E6%8A%A5%E9%94%99%E4%BF%A1%E6%81%AF/5281f50d-25f2-4eb0-91ad-2bd97cf0f762)