2013-01-07 84 views
0

我在写一个需要读取excel文件的C#程序(.net 2.0)。我开始知道我将不得不使用Microsoft.Office.Interop.Excel。我下载了O2003PIA.MSI并使用7Zip,提取了DLL(未安装)。现在,当我添加参照提取EXCELPIA.DLL,它引发以下错误:使用Office 2003 interop DLL而不安装可再发行

Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified. 

我要部署的组件作为专用程序集,并且不希望最终用户安装可再发行。有什么依赖我失踪?

我已经尝试添加对OFFICE.DLL的引用,但它也没有帮助。

编辑1

  1. 使用此之前,安装Office 2003需要它?
  2. 是否还有其他.net 2.0选择?
+0

PIA只是包装:使用“依赖查看器”来查看是否有任何缺少先决条件的DLL。在加载程序集时(即在可搜索的DLL路径中),必须找到这些DLL,但不应将*添加为项目引用。请记住安装的各个Office程序使用PIA。此外,请确保只针对正确的位(32位for Office 2003),因为64位可执行文件无法找到正确的32位资源。 – 2013-01-07 03:50:14

+0

我用Dependency Walker,发现它取决于MSCOREE.dll –

+0

这确实是Office的一部分:)但是,我不知道是否有可能获取/分发这样的文件*但不安装Office。 (另外,如果安装了Office,则验证VS是否以32位模式运行;直到Office 2007才提供64位Office支持。) – 2013-01-07 03:56:35

回答

0

我用了一件叫NPOI的东西,它工作得很好。

相关问题