如果我没记错的话,我认为修复可能比您预期的要简单。您的名称空间只需要更改以引用较新的服务。据我所知,您不能在 2008 命名空间上运行 2012。当您提到“Winforms”应用程序时,我感到困惑,该应用程序通过通常以多种方式设置的查看器间接与 SQL 报告服务对话。如果是这种情况,请按照下面的 A 进行操作,但是您提到直接编辑报告,所以我很好奇这些客户端报告是否直接在应用程序中?如果是这样,我会假设您正在谈论带有 RDL 报告的 SSRS 2012,在这种情况下,如果这是使用商业智能开发工作室创建的报告托管报告,我会尝试使用 B,添加在 SQL 2012 创建的 VS 2010 上。
A:
您可以永远重新安装 2012,但不能让它使用 2008 的命名空间来存储数据。您需要使用 2012 年有效服务中的最新代理类,并将它们放入您的 C#/VB.NET 项目中。如果您不确定如何下载和调整代理类,我在这里有一个更详细的主题:Programmatically Export SSRS report from sharepoint using ReportService2010.asmx
//
// This source code was auto-generated by xsd, Version=4.0.30319.17929.
//
namespace SampleRDLSchema {
using System.Xml.Serialization;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition", IsNullable=false)]
B.
- 在磁盘上查找“RDL”报告的本地副本并将其复制。
- 获取副本并使用文本编辑器打开它,我会使用 Notepad++ 或类似的东西。
RDL 作为一种语言对我来说并没有真正改变太多,(我什至没有看到 2008R2 和 2012 之间设计器的差异)。所以沿着这条线,你可以尝试破解,看看它是否可以工作。将顶部附近的“< Report”节点编辑为:
< Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">