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、定位的程序集定义与程序集引用不匹配。
我检查了一下,该引用文件是在bin文件夹里的,排除了“找不到文件”这个原因。把鼠标移到文件上面,显示文件版本是12.0,这与错误报告里的Version=14.0.0.0是不匹配的,可能就是这个原因了。
认真想了一下,以前之所以没问题,是因为本地电脑安装的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
- 站长推荐