代码改变世界

错误 155 程序集“Microsoft.Office.Interop.Excel, Version=12.0.0.0

2011-05-05 08:38  jiangys  阅读(5173)  评论(0编辑  收藏  举报

错误 155 程序集“Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”所使用的“Microsoft.Vbe.Interop, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”版本高于所引用的程序集“Microsoft.Vbe.Interop, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”的版本

解决方法

运行时遇到错误:未能加载文件或程序集“Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或它的某一个依赖项。系统找不到指定的文件。

尝试过的解决方式:
1、安装Office 2003;
2、安装vstor.exe;
3、安装O2003PIA.EXE;
4、无数次的重启服务器、重启IIS;
5、安装“可编程性支持”:在“添加或删除程序”中对Office进行“更改”安装操作,将漏装部分重新安装上去即可。具体操作如下面的图片:

如下图:对应用程序进行高级自定义

如下图:在“.Net 可编程性支持”选项的下拉菜单中选择“从本机运行”或“从本机运行全部程序”。


应用步骤1及步骤5后,问题解决,原因如下:

系统安装了“Excel 2003”,但是没有安装到GAC里面。(有关GAC全局程序集缓存的介绍大家可以参考MSDN的相关帮助。)导致出现种情况的可能有两个:一是在Office 是在安装.Net Framework之前安装的,另一个是在安装Office的过程中漏选了“.Net 可编程性支持”。那么我们第5步做的就是将Office 2003 PIA(主Interop程序集)安装到GAC里,可以从以下目录看到:“C:\Windows\assembly”,从而如题所述的问题也就解决了。

同样的,在Asp.net里引用其它程序集出现类似的问题也可参考此方法。


如果再不行的话,就下载一个PIA

http://www.microsoft.com/downloads/en/details.aspx?FamilyId=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=en

安装到“C:\Windows\assembly”目录下,重启电脑,在引用集里,添加引用--Microsoft Excel 11.0 Object Library 1.5 就可以了。