开发环境:win7(64)、vs2010、office2010
引用了一款开源的打印组件,其中除了组件本身的dll,还带了interop.excell.dll(版本号为1.3.0)、Interop.Microsoft.Office.Core.dll,Interop.VBIDE.dll三个相关组件现在问题是,我在程序中引用该打印组件时,只要是遇到调用excell的地方,就会报 “未能加载文件或程序集“Interop.Office, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。”从信息上看,excell.dll的地址是在“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA”中的office2010自带的dll,而不是在/bin/debug目录下老版的dll,这是为啥?我明明已经引用了打印组件自带的老版的dll,而且,这几个dll我都拷贝到了.exe所在的目录下了的呀!请各位多多赐教,不胜感谢!
引用了一款开源的打印组件,其中除了组件本身的dll,还带了interop.excell.dll(版本号为1.3.0)、Interop.Microsoft.Office.Core.dll,Interop.VBIDE.dll三个相关组件现在问题是,我在程序中引用该打印组件时,只要是遇到调用excell的地方,就会报 “未能加载文件或程序集“Interop.Office, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。”从信息上看,excell.dll的地址是在“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA”中的office2010自带的dll,而不是在/bin/debug目录下老版的dll,这是为啥?我明明已经引用了打印组件自带的老版的dll,而且,这几个dll我都拷贝到了.exe所在的目录下了的呀!请各位多多赐教,不胜感谢!
using Microsoft.Office.Interop.Word;
这个你用了没有。
using Microsoft.Office.Core;
using Excel;
using Word;若是07
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Word;
using Word = Microsoft.Office.Interop.Word;在网上下Microsoft.Office.Interop.Excel.dll 和 Microsoft.Office.Interop.Word.dll,引用一下就行了,我就是这样弄的。
我的问题是:由于打印组件引用的是老版本(估计是office2003)的excell.dll,我不敢随便用office2010版本的替换,担心出现其它问题,所以我引用的是打印组件自带的interop.excell.dll,可问题是程序运行报““未能加载文件或程序集“Interop.Office, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null””错,从版本上看,这根本不是老版本的dll,而且,从报错的具体信息看,程序引用dll的目标地址是C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA目录下的dll,这个dll应该是office2010的dll。这让我很是迷惑啊,我明明应用的是我程序下的老版本,为什么运行时找的却是新版本的dll?(附注:我已经把老版本的dll放到了exe所在的目录)
How to: Install Office Primary Interop Assemblies你的机器没有安装PIA程序集导致的,按照上面那个提示,去下载安装一下吧。To download the PIAs for the 2007 Microsoft Office system, see
http://go.microsoft.com/fwlink/?LinkId=72637
bin目录添加dll文件