部署报表和 ReportViewer 控件
您可以将报表和 ReportViewer 控件作为应用程序的一部分自由发布。 根据控件类型以及报表是配置为本地处理还是远程处理,部署要求会有很大不同。 在同一个应用程序中,既可以部署本地处理的报表,也可以部署远程处理的报表。
重新发布 ReportViewer 控件
可再发行 ReportViewer 控件是一个名为 ReportViewer.exe 的自解压文件,其中包括一个 .msi 文件以及其他文件。 还可以从 Microsoft 下载中心下载 ReportViewer.exe。
备注
不同版本的可再发行 ReportViewer 控件可以安装在同一台计算机上。
运行 ReportViewer.exe 时,以下文件安装在部署计算机上的全局程序集缓存文件夹中。
Microsoft.ReportViewer.Common.dll
Microsoft.ReportViewer.ProcessingObjectModel.dll
Microsoft.ReportViewer.WebForms.dll
Microsoft.ReportViewer.WinForms.dll
Microsoft.ReportViewer.DataVisualization.dll
运行 ReportViewer.exe
您所使用控件的类型决定运行 ReportViewer.exe 的位置。
对于 ASP.NET 应用程序,应在承载应用程序的 Web 服务器上运行 ReportViewer.exe。 此操作必须由服务器管理员执行。
对于 Windows 窗体 ClickOnce 应用程序,应将控件纳为应用程序的系统必备组件,以使它们自动随 ClickOnce 应用程序一起安装。 您可以使用引导应用程序自动完成此步骤:
打开项目属性页。
单击**“发布”选项卡,然后单击“系统必备”**按钮。
选择**“Microsoft Visual Studio 报表查看器”和“SQL Server CLR 类型”,然后单击“确定”**。
请确保已选中**“从组件供应商的网站上下载系统必备组件”选项。 这是唯一受支持的选项。 然后单击“确定”**。
单击**“选项”**按钮。
在**“部署”选项卡中,指定部署网页并选中“发布后自动生成部署网页”**复选框。
单击**“确定”**并发布应用程序。
访问 ClickOnce 应用程序时(例如通过网页),将在客户端计算机上执行检查以查看 ReportViewer 系统必备组件到是否已经安装。 如果尚未安装,安装程序将安装它。
部署 ReportViewer 控件的本地化版本
可再发行 ReportViewer 控件本地化为十种 Visual Studio 语言:简体中文、繁体中文、法语、德语、意大利语、日语、朝鲜语、葡萄牙语(巴西)、俄语和西班牙语。 如果您安装本地化的 Visual Studio 版本,可以从 Microsoft 下载中心下载任何本地化可再发行控件 ReportViewer。
若要在**“ReportViewer”**控件中使用其他语言,可以实现 IreportViewerMessages3 或 IreportViewerMessages3 接口,以便用特定的语言创建工具提示及其他用户界面文本。
确定浏览器语言和区域性设置
当使用 ReportViewer Web 服务器控件在浏览器应用程序中承载报表时,如果要提供与浏览器语言和区域性设置匹配的用户界面,应务必对线程区域性进行设置。 ASP.NET 并不会基于客户端提供的标头信息来设置线程区域性。 若要让应用程序与浏览器的区域性设置匹配,可以在应用程序代码中设置 Thread.CurrentCulture 和 Thread.CurrentUICulture。 有关如何处理应用程序的区域性设置的更多信息,请参见 System.Globalization.CultureInfo。
部署报表查看器 Web 服务器控件的注意事项
在 Web 场中部署 ASP.NET 应用程序需要进行其他配置,以确保在整个场中维护视图状态。 如果是在 Web 场环境中部署 ReportViewer Web 服务器控件,则应在应用程序的 Web.config 文件中指定 machineKey 元素。 有关更多信息,请参见 ReportViewer 的 Web.config 设置。
在 ReportViewer Web 服务器控件中处理的报表对浏览器的要求不尽相同。 浏览器兼容性问题会影响某些种类的报表功能的可用性。 有关更多信息,请参见 ReportViewer Web 服务器控件的浏览器支持。
分发报表文件
除非使用 LocalReport.LoadReportDefinition 或 ServerReport.LoadReportDefinition 方法在运行时动态生成客户端报表定义,否则有几个不同的选项供与应用程序一起分发报表文件,具体取决于报表查看器控件的处理模式。
本地处理的报表可以存储在网络文件夹中或编译为可执行的应用程序。 在远程服务器上处理的报表通常存储在 SQL Server Reporting Services 报表服务器上。 除非要使用 ServerReport.LoadReportDefinition 方法从报表服务器之外的位置手动加载报表,否则在应用程序中没有要包括的报表文件。 若要部署在报表服务器上发布的报表,必须提供对报表服务器进行访问的权限,并确保应用程序用户有权查看该服务器上的报表。 部署服务器报表需要了解报表服务器所使用的身份验证扩展插件,以及提供内容访问权限和操作权限的、基于角色的身份验证模式。 有关更多信息,请参见服务器报表的部署注意事项。