技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

Could not load file or assembly Microsoft.Office.Interop.Word

作者:admin    时间:2021-8-19 11:17:36    浏览:

今天更新了一下程序,运行时却出现了如下提示的错误:

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Office.Interop.Word, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

根据提示语句,我知道是因为程序引用了Word集合(Microsoft.Office.Interop.Word.dll)的原因,但是这个引用并不是现在才添加,而是很久以前就开始使用了,并且没有任何问题。

再看看提示语句,说到有两个可能原因所致:1、没有找到文件 2、定位的程序集定义与程序集引用不匹配。

Could not load file or assembly Microsoft.Office.Interop.Word
(点击图片放大)

我检查了一下,该引用文件是在bin文件夹里的,排除了“找不到文件”这个原因。把鼠标移到文件上面,显示文件版本是12.0,这与错误报告里的Version=14.0.0.0是不匹配的,可能就是这个原因了。

Microsoft.Office.Interop.Word.dll 版本号

认真想了一下,以前之所以没问题,是因为本地电脑安装的office是2003,跟服务器上的版本一致,而近期本地安装的office是2010,所以.net里的引用版本就改变了,跟服务器上的不一致了。

(这里我有点不明白,我程序引用的是bin文件夹里的文件(Microsoft.Office.Interop.Word.dll)没有变,为什么编译后却变成了本机安装的office版本?)

解决方法

知道了原因,解决起来就容易了。我如果在服务器也安装office2010,问题就能解决。

但是我觉得安装office2010非常麻烦,想用简单点的方法。于是我就想,能否用版本为14.0的dll文件(Microsoft.Office.Interop.Word.dll)来替换服务器里程序使用的bin文件夹下的旧文件?

试一试看看。

立即在网上下载该版本的dll(Microsoft.Office.Interop.Word.dll)文件,拷贝到服务器里程序bin文件夹下,替换旧的文件。

重启IIS。

运行程序。

竟然,成功了!

总结

解决方法:
1、下载对应版本的dll文件,拷贝到bin目录。
2、VS编写程序时引用这个文件。
3、最后在实际应用环境中,也要把此dll文件拷贝到bin目录下。
4、重启IIS

 

标签: Word  
相关文章
    x
    • 站长推荐