首页 新闻 会员 周边

未装Office2003引用Microsoft.Office.Interop.Excel 问题

0
悬赏园豆:50 [待解决问题]

环境描述:有一WEB项目用到了 Microsoft.Office.Interop.Excel 用来生成报表时 读写excel ,原来开机的机器上装了office2003 ,还有 world2007
项目bin目录下引用了如下程序集
Microsoft.Vbe.Interop.dll
Microsoft.Office.Interop.Excel.dll
Office.dll
Excel.dll
遇到的问题-----------------------------------
当把所有项目复制到未装OFFICE的新机器时 无法编译通过项目,错误提示:
错误    3    未能加载文件或程序集“Microsoft.Vbe.Interop, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)    G:\WebSite\Web.Config    51   
程序集中的: using Excel = Microsoft.Office.Interop.Excel; 也找不到,只存在
Microsoft.CSharp 或Microsoft.SqlServer 等 不存在Microsoft.Office
这就导致:
    1.所有调用了Office的代码编译通不过,试过各种办法
    2.项目下所有cs文件失去了智能感知能力,aspx 中第一行始终出现波纹线,鼠标移上去提示:
错误    1    G:\WebSite\ajaxUser.aspx: ASP.NET 运行时错误: 未能加载文件或程序集“Microsoft.Vbe.Interop, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040) (G:\WebSite\web.config line 51)    G:\WebSite\ajaxUser.aspx    1    1    G:\WebSite\


尝试的办法---------------------------------------------
-删除配置文件中system.web/compilation/assemblies节下的

<add assembly="office, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>
<add assembly="Microsoft.Vbe.Interop, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>

cs 中的代码文件有了智能感知,但是 提示找不到 Microsoft.Office.Interop.Excel  GOOGLE 后据下载了 O2003PIA.EXE 安装 可提示前提是要安装office,晕 难道不装office就不能编译通过程序么? 我已经把程序要用的dll都复制到了项目bin目录下都不可以!!!按.NET 原理只需要加入用到的程序集就可以啊为什么呢,就是不想装OFFICE
还有一个确信的事情是:我把程序发布到服务器上,程序能正常工作,程序器也上也没有装OFFICE ,为什么服务器可以,就是编译通不过呢

 

大道无情的主页 大道无情 | 初学一级 | 园豆:152
提问于:2010-09-09 12:33
< >
分享
所有回答(1)
0

楼主注意dll的引用路径。

因为有些dll部署在GAC中或经tlb形式发行,而不仅仅在Bin下。

如果是强命名,需要手动部署,而不是复制到bin就可以。

以臆碰到一个现象差不多的例子,可以参考下思路:
http://www.cnblogs.com/downmoon/archive/2010/03/08/1680834.html

邀月 | 园豆:25475 (高人七级) | 2010-09-09 14:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册