以前用vs2005编写的WEB程序,现在使用vs2008时总是出现水晶报表的错误,不能使用。经过本人实践,总结一下错误原因:
一、没有安装部署好水晶报表;(vs2008安装后,不等于安装了vs2008水晶报表)
二、源程序中:VS2008和v2005的水晶报表版本号不对;vs2008的版本号是:Version=10.5.3700.0 ,造成水晶报表无法使用;
三、有时出现找不到水晶报表相对应的命名空间错误:一般是using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine; 这两个命名空间引用找不到;
解决方法:
一、VS2008安装好后,还应正常安装和部署水晶报表;
vs2008和vs2005都自身带有水晶报表安装和部署程序包;
vs2005所在目录:C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalReports2.
vs2008所在目录:C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5
安装一下就可以,或是复制出来,在所要部署的服务器上安装一下就可以;(不用注册,但有5人连接并发限制,有破解方法)
3.发布程序时(如果不发布程序,可以省略,其实你把水晶报表安装程序中服务器上安装一下就可以了):
将下面几个dll拷贝到/bin下,注意版本号
vs.net 2005,在这个目录
C:\Program Files\Microsoft Visual Studio 8\ReportViewer
vs.net 2008,在这个目录
C:\Program Files\Microsoft Visual Studio 9.0\ReportViewer
microsoft.reportviewer.common.dll
microsoft.reportviewer.processingobjectmodel.dll
microsoft. reportviewer.webforms.dll
安装一下,然后重启服务器,再访问就OK了
二、打开VS2005编写的程序时,vs2008会要求把编写的程序升级到vs2008模式,点确定就可以了。如果你正确安装了vs2008水晶报表,提示你把所有程序页面中水晶报表版本号一同修改,你点同意或确定就全自动改为Version=10.5.3700.0。
三、解决:有时出现找不到水晶报表相对应的命名空间错误:一般是using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine; 这两个命名空间引用找不到;
正确安装vs2008水晶报表就可以了,就是上面一、二两个步骤,问题就解决了,就能找到命名空间;
一切OK了,可以用了,vs2008水晶报表添加了打印机直接打印的功能,挺实用的!