如何修复“无法添加对 MSO.dll 的引用”?

How to fix "A reference to MSO.dll could not be added"?

提问人:Valuex 提问时间:1/3/2016 最后编辑:CommunityValuex 更新时间:1/3/2016 访问量:834

问:

环境:64 位 Win10 + 64 位 VS 2015
我正在尝试开发一个 onenote 加载项。
当我添加对 MSO.dll 的引用时,会弹出一个警报,说

“对'C:\Program Files (x86)\Common Files\Microsoft 的引用 共享\OFFICE15\MSO。无法添加 DLL。请确保 文件是可访问的,并且它是有效的程序集或 COM 组件”

我试过无法添加
对 dll 的引用 1。使用 TlbImp.exe 并出现以下错误:

TlbImp:警告 TI0000:主互操作程序集“Office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C' 是 已注册类型库 'C:\Program Files (x86)\Common 文件\Microsoft共享\OFFICE15\MSO。DLL'。TlbImp:错误 TI0000: System.IO.IOException - 访问被拒绝。(HRESULT 的异常: 0x80070005 (E_ACCESSDENIED))

  1. 使用Dependency Walker,发现很多DLL文件都找不到,如下所示:

API-MS-WIN-CORE-ATOMS-L1-1-0.DLL
EXT-MS-MF-PAL-L2-1-0.DLL

  1. 在使用 VBE 的 excel 中,可以引用 MSO.dll。

对此错误感到非常困惑,请分享如何解决此问题。
感谢您的任何提示/回复

C# DLL MS-Office OneNote

评论

0赞 Eugene Astafiev 1/4/2016
为什么需要手动添加 MSO 引用?
0赞 Valuex 1/4/2016
好吧,我在参考列表中的 COM 选项卡中找不到 microsoft office 15.0 对象库。我尝试重新安装 MS office。但它仍然不起作用。

答:

-1赞 Tom 1/3/2016 #1

可能是问题引起的,因为 32 位 COM 组件无法加载到 64 位进程中。将您的项目更改为 x86,它可能会起作用!?