新装VS/Office/Project 2013环境下Excel互操作库未注册错误原因咨询
这个TYPE_E_LIBNOTREGISTERED错误本质是COM组件的接口注册出了问题,结合你安装的Office 2013、Project 2013和VS2013的环境,主要有以下几个常见原因:
Office组件注册不完整或冲突
安装Office 2013时如果中途中断、部分组件未完全安装,或者后续安装Project 2013时与Office组件的注册信息产生冲突,都可能导致Excel的Interop相关COM库没有在系统注册表中正确注册。程序调用时找不到对应IID{000208D5-0000-0000-C000-000000000046}的接口,就会抛出这个错误。32位/64位环境不匹配
你的VS项目编译平台和Office 2013的位数不匹配是常见诱因:- 如果项目设置为x86(32位)编译,但你安装的是64位Office 2013,32位程序会去读取32位注册表路径的COM注册项,而64位Office的注册项在64位路径下,自然找不到;
- 反之,64位项目搭配32位Office也会出现同样问题。可以检查项目属性里的「平台目标」设置来确认。
Interop程序集版本冲突
项目中引用的Microsoft.Office.Interop.Excel程序集版本可能和实际安装的Office 2013版本不对应,或者之前安装过其他Office版本的Interop残留,导致程序调用时指向了错误的库。右键项目引用里的Interop组件,查看版本号是否为Office 2013对应的15.0.0.0版本。权限不足导致注册失败
安装Office或VS时没有使用管理员权限,会导致COM组件的注册项无法写入需要高权限的系统注册表路径(比如HKEY_CLASSES_ROOT)。程序运行时无法读取这些注册信息,就会触发库未注册的错误。Office安装文件损坏
Office 2013的安装包本身损坏,或者安装后被系统更新、第三方杀毒软件误删了相关库文件或注册项,都会导致COM组件无法正常被识别。
内容的提问来源于stack exchange,提问作者Gilbert

