在网上搜索水晶报表部署,基本都是介绍独立版本的水晶报表安装部署,鲜有介绍vs自带的水晶报表部署,阿泰博文系列CR部署中转载了一篇关于vs的水晶报表部署,在原文(http://www.cnblogs.com/whhcode/archive/2008/01/08/1030661.html)中明确提出:将CRRedist2008_x86在要部署的机器上安装就可以了。
但这句话却让我陷入了两重疑问:
1、如果是64位机呢,还是装CRRedist2008_x86,而不是CRRedist2008_x64?
2、要手动安装CRRedist2008_x86,不能在安装软件的时候同步安装CRRedist2008_x86吗?
经过自己验证,CRRedist2008_x86安装后,确实支持在64位机下运行,所以这样一来,CRRedist2008_x64岂不是没用了:) 无论是有用还是无用,反正我们是不管它了。
vs安装部署“系统必备”里面有这一项,但这是x86和x64一体的,如图
安装时自动检测系统环境或安装CRRedist2008_x86或安装CRRedist2008_x64。项目属性里的Platform target若是Any CPU,则一切都没问题,Platform target若是x86(我这边的项目属性里面基本都这个),则在64位机下,水晶报表便无法正常预览。而安装CRRedist2008_x86则一切都没问题。所以一切问题的解决方案只有一个:那就是无论什么机器,只要安装CRRedist2008_x86即可。
问题又来了,“系统必备”里面只有这一项,而没有单独的x86,此时我们只能想方设法把这一项变成x86(不带x64)。我们回到原地C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5,发现这里面有一个product.xml文件,用记事本打开,才发现安装条件、检测及动作的控制全都写在这里,真是柳暗花明又一村。我们完全可以修改其内容让它只安装CRRedist2008_x86,所以我们把x64相关语句删掉,删除如下黄色语句段
修改完后保存,再打开vs的“系统必备”窗口,仍旧显示Crystal Reports Basic for Visual Studio 2008 (x86, x64),其实到现在这仅仅只是一个名字而已,看着别扭就改了它呗,在C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5这边有一个语言目录(我这是en),进入语言目录有一个package.xml文件,修改这边的DisplayName即可,如图
改完后保存,再次打开“系统必备”窗口,此时终于变成了你刚修改的内容。
一切部署完毕,打包吧^^