power pivot 中无法将类型为“system.——comobject”的com对象强制转换为接口类型 它提示的库没有注册是指哪个库,谢谢各位大神
power pivot 中无法将类型为“system.——comobject”的com对象强制转换为接口类型 它提示的库没有注册是指哪个库,谢谢各位大神
1. windows下IID(the Interface ID,为GUID)为{000208D5-0000-0000-C000-000000000046}的查询接口对应的是Microsoft.Office.Interop.Excel.dll文件(从ILSpy.exe查看知道),一个可能的路径为 C:\Program Files\Microsoft Office\root\Office16\ADDINS\PowerPivot Excel Add-in\Microsoft.Office.Interop.Excel.dll。
2.可能是注册表残留先前版本的office文件信息,注册表定位到计算机\HKEY_CLASSES_ROOT\Interface{000208D5-0000-0000-C000-000000000046}下,查看typelib下 Version值及对应的默认LIBID值(the Type Library ID),可能的值为 {00020813-0000-0000-C000-000000000046}。进而计算机\HKEY_CLASSES_ROOT\TypeLib{00020813-0000-0000-C000-000000000046}下,查看是否有多个条目(值可能在1.0~1.9之间,或更高)(值1.9对应的是Microsoft Excel 16.0 Object Library(MS Excel 2016)),删除或重命名与先前找到的Version值不同的项。
3.猜测是这样,类型为System.__ComObject的Com对象进行强制转换时找不到对应版本的文件(注册表无相应项、值,或有值但无对应的dll文件),才发生该错误,产生库没有注册的提示。修正对应的注册表项,或者重新安装正确的版本一般能解决问题。
参考
①.COM IDs & Registry keys in a nutshell
⑤.Office automation when multiple versions of Office are installed