VS2010 打包水晶报表中部署问题详解

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 转自博客:http://blog.csdn.net/szstephenzhou/article/details/8903759     在vs2010中水晶报表作为一个独立的模块存在,在使用水晶报表前必须安装 使用做个简单的介绍 重点讲解打包水晶报表 因为使用这方面太熟悉不过了 ,从2003 到2005 再到2008 已经使用的太多太多了 。

转自博客:
http://blog.csdn.net/szstephenzhou/article/details/8903759

    在vs2010中水晶报表作为一个独立的模块存在,在使用水晶报表前必须安装 使用做个简单的介绍 重点讲解打包水晶报表 因为使用这方面太熟悉不过了 ,从2003 到2005 再到2008 已经使用的太多太多了 。

如下下载安装后打开VS2010就可以在左边工具栏中看到CRYSTALREPORTVIEWER,并且可以新建水晶报表了;

用法跟以前版本的用法类似;  不过要注意下面几点;

A.   运行环境不能为.NET FRAMEWORK 4.0 CLINET PROFILE,要改为.NET FRAMEWORK 4,选中项目右键属性就可以更改了;

B.在项目中加一个APP.CONFIG(这是针对WINFORM项目),如果是WEB项目就不用加了,里面有一个WEB.CONFIG;在这配置文件中加上  

startupuseLegacyV2RuntimeActivationPolicy="true">

  supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.0"/>startup>


这可以避免ADO.NET与水晶报表运行时由于.NET版本问题出错


1
SAP Crystal Reports, version for Visual Studio 2010 -
包括了报有DLL的水晶报表文件

2SAP Crystal Reports, version for Visual Studio 2010 - 
水晶报表部署时用到的文件

3SAP Crystal Reports runtime engine for .NET Framework 4 (32-bit)

只支持32位系统的包

4SAP Crystal Reports runtime engine for .NET Framework 4 (64-bit)

只支持64位系统的

 

(1)下面做一个简单的水晶报表,在项目中建一个窗体FORM1,一个水晶报表CrystalReport1,一个数据集 DATASET1;(水晶报表的设置跟以前版本的一样)

在窗体上放一个CRYSTALREPORTVIEWER,然后在FORM1的LOAD事件下写上;我这是把水晶报表放在DEBUG这个文件夹下动态加载的; 你也可以直接放在项目中在CRYSTALREPORTVIEWER上指定报表名称;

private void Form1_Load(object sender, EventArgs e)

        {

            SqlConnection con =newSqlConnection("Data Source=127.0.0.1;Initial Catalog=cldz;User ID=sa;Password=888");

            con.Open();

            SqlDataAdapter da =newSqlDataAdapter("select top 100 * from table", con);

            DataSet ds = new DataSet();

            da.Fill(ds, "ZZZPJ");

            string reportPath = Application.StartupPath + @"/CrystalReport1.rpt";

            ReportDocument rd = new ReportDocument();

            rd.Load(reportPath);

            rd.SetDataSource(ds.Tables[0].DefaultView);

            this.crystalReportViewer1.ReportSource = rd;/

 

         

        }

 

(2)vs2010水晶报表的发布有两种方式;

方式一,就直接下载MSI文件安装在客户端,客户端就可以用了;32位的下载上面的3);如果是64位的下载上面的4);

方式二(推荐使用)
    就是下载上面2)中的MSM文件,里面第一个是CRRuntime_13_0.msm这个是英文包;如果需要支持中文就加一个MSM,( CRRuntime_13_0_zh_cn.msm); 另外加一个CRRuntime_13_0_maps.msm 这个可以不用;

用VS2010自带的打包软件打包发布,新建一个安装项目,安装项目的制作过程这里就不详细说了,跟以前的制过程一样;

制作完后,右键项目选添加―――合并模块――把上面提到的三个以.MSM结尾的文件加入进去,并且把

C:/Program Files/Common Files/Merge Modules文件夹中的VC100的MSM加入进去,如果是32位的就加X86的,如果是64位的就加X64的;最后确定;

再右键项目选属性,点击“系统必备”按钮;(在弹出的对话框中选中 VISUAL C++ 2010 运行库,注意根据系统选,有32与64位的;可选项,对C#开发的程序可以不加

在下面的单选按钮中选第二项“从与我的应用程序相同的位置下载系统必备组件”;

这样发布的准备工作就做完了,选择菜单上的生成――生成项目或者右键项目点生存就可以了;


注意:(我在上面所有提到的“项目”不是VS工具栏上面菜单中的“项目”;是你解决方案下的项目,比如你新建了一个安装项目叫SETUP1,那就是指SETUP1)

如果制作好的安装程序在安装过程中出未能注册某一个模块请到下面网址下载一个适合你系统版本的文件安装

地址 http://www.microsoft.com/zh-cn/download/details.aspx?id=14431  具体根据你系统个版本 是64的还是32的

把下载的这个补丁也打包进去  如下操作

安装Visual C++ 2005 SP1运行时刻库

在未安装Visual C++ 2005 的计算机上运行使用 Visual C++ 2005开发的应用程序,必须先安装Visual C++2005 运行时刻库组件。Visual C++ 2005 SP1更新了这个组件,所以使用Visual C++2005 SP1 开发的应用程序必须随程序发布Visual C++ 2005 SP1运行时刻库组件。但是Visual C++ 2005 SP1的一个BUG造成使用安装和部署项目进行部署的时候,安装程序可能安装原版的Visual C++2005 运行时刻库组件,而不是SP1版本,造成使用Visual C++2005 SP1 开发的应用程序启动失败。这个问题的原因是%Program Files%Microsoft Visual Studio8\SDK\v2.0\BootStrapper\Packages\vcredist_x86下面的product.xml中的产品代码在安装Visual C++ 2005 SP1的过程中没有更新。要修正这个问题,可以打开这个文件,修改如下两行


改后的product.xml文件如下


[html]  view plain copy print ?
  1. xml version="1.0" encoding="utf-8" ?>  
  2.   
  3. Product  
  4.   xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"  
  5.   ProductCode="Microsoft.Visual.C++.10.0.x86"  
  6. >  
  7.   
  8.      
  9.   PackageFiles>  
  10.     PackageFile Name="vcredist_x86.exe" HomeSite="VCRedistExe"/>    
  11.        
  12.      
  13.   PackageFiles>  
  14.   InstallChecks>  
  15.     MsiProductCheck Property="VCRedistInstalled" Product="{7299052b-02a4-4627-81f2-1818da5d550d}"/>  
  16.   
  17.   
  18.       
  19.   InstallChecks>  
  20.   
  21.      
  22.      
  23.   Commands Reboot="Defer">  
  24.     Command PackageFile="vcredist_x86.exe"  
  25.          Arguments=' /q:a '  
  26.          >  
  27.   
  28.          
  29.       InstallConditions>  
  30.            
  31.   
  32.           
  33.         BypassIf Property="VCRedistInstalled" Compare="ValueGreaterThanOrEqualTo" Value="5"/>  
  34.   
  35.            
  36.         FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>  
  37.   
  38.            
  39.         FailIf Property="Version9X" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>  
  40.   
  41.            
  42.         FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>  
  43.   
  44.       InstallConditions>  
  45.   
  46.       ExitCodes>  
  47.         ExitCode Value="0" Result="Success"/>  
  48.         ExitCode Value="3010" Result="SuccessReboot"/>  
  49.         DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />  
  50.       ExitCodes>  
  51.   
  52.     Command>  
  53.   Commands>  
  54. Product>  



    另外,Visual C++ 2005 SP1版本的可以用最新的Visual C++ 2005 SP1运行时刻库组件来替换%Program Files%Microsoft Visual Studio8\SDK\v2.0\BootStrapper\Packages\vcredist_x86下面的vcredist_x86.exe,这样安装和部署项目产生的安装程序中会包含最新版的组件。

相关文章
|
存储 关系型数据库 数据库
深入了解 PostgreSQL:功能、特性和部署
PostgreSQL,通常简称为Postgres,是一款强大且开源的关系型数据库管理系统(RDBMS),它在数据存储和处理方面提供了广泛的功能和灵活性。本文将详细介绍 PostgreSQL 的功能、特性以及如何部署和使用它。
1245 1
深入了解 PostgreSQL:功能、特性和部署
|
存储 分布式计算 Kubernetes
大型分布式存储方案MinIO介绍,看完你就懂了!
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
|
缓存 前端开发 UED
前端优化:首屏加载速度的实践
随着互联网技术的飞速发展,前端网页逐渐取代了传统客户端成为用户获取信息、进行交互的重要渠道,但是网页也有常见的弊端,比如网页首屏加载速度的快慢直接影响着用户体验,那么如何提升网页的首屏加载速度,成为了前端开发者必须面对的问题。本文将从多图片懒加载、避免用户多次点击请求以及骨架屏原理等方面,简单分享一下前端优化首屏加载速度的策略优化。欢迎大家在评论区留言交流。
266 2
前端优化:首屏加载速度的实践
|
机器学习/深度学习 编解码 算法
深度学习之边缘检测
边缘检测是计算机视觉中的一项基本任务,旨在识别图像中像素值变化显著的区域,即边缘。传统的边缘检测算法(如Sobel、Canny等)通过滤波器和梯度运算来检测边缘,而基于深度学习的方法则通过训练神经网络自动学习图像中的边缘特征,从而实现更高的检测精度和鲁棒性。
453 1
|
前端开发 容器
|
IDE 开发工具 Windows
手把手教你调整电脑磁盘的分区大小
手把手教你调整电脑磁盘的分区大小
1453 0
手把手教你调整电脑磁盘的分区大小
|
计算机视觉
[Halcon&图像] 形态学处理(腐蚀、膨胀、开运算、闭运算)
[Halcon&图像] 形态学处理(腐蚀、膨胀、开运算、闭运算)
1033 1
|
Windows
IntelliJ IDEA - 闪退解决方案
IntelliJ IDEA - 闪退解决方案
1613 0
IntelliJ IDEA - 闪退解决方案
|
供应链 Cloud Native 搜索推荐
如何对话CIO/CTO
在toB销售过程中经常需要与企业的CIO\CTO沟通交流,一次好的方案交流会让企业留下深刻印象,对成单起到非常重要的开头作用。那么如何与CIO/CTO成功对话,需要掌握什么样的技能,CIO/CTO又有什么区别? 本文适读人群:开发、售前、销售
1299 0
如何对话CIO/CTO
|
Linux
CentOS查看磁盘空间大小
CentOS查看磁盘空间大小
704 0