Visual Studio 2010:报表定义无效.详细信息:报表定义的目标无效

Mac*_*kie 6 .net report-designer visual-studio-2010 reporting-services

Re:报告定义无效.详细信息:报表定义具有无效的目标命名空间" http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition ",无法升级.

报告专家需要,梁着...

这是我今天经历的一步,以实现这一点愚蠢.

1)Visual Studio 2010,带有SQL Server 2012

2)App是一个winforms vb.net,一直很好用,最初是在VS 2008开发的

在我到达之前,报告在上午运行良好.-叹-

3)尝试编辑一些报告 - 自升级到SQL 2012以来的第一次.

4)无法编辑数据集并确定某些内容已损坏.

5)在VS 2010上安装修复装置并确保它完全是最新的.没有快乐 - 无法更新数据集.

6)为连接客户端添加SDK,重新运行SQL SSMS的安装

7)现在我可以编辑报告数据集,但报告已被破坏.(见标题) - 双叹 -

报告查看器是10.0.0

.Net是4.0

谢谢你的任何提示

麦克麦卡斯基

Már*_*les 7

我今天在VS2013中遇到过这个问题.

一定要参考正确的ReporViewer DLL版本:

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\ReportViewer \


dja*_*azz 2

如果我没记错的话,我认为修复可能比您预期的要简单。您只需更改名称空间即可引用较新的服务。据我所知,您无法在 2008 命名空间上运行 2012。不过,当您提到“Winforms”应用程序时,我很困惑,该应用程序通过通常以多种方式设置的查看器与 SQL 报告服务进行间接对话。如果是这种情况,请按照下面的 A 操作,但是您提到直接编辑报告,所以我很好奇这些客户报告是否直接在应用程序中?如果是这样,我会假设您正在谈论带有 RDL 报告的 SSRS 2012,在这种情况下,如果这是使用 Business Intelligence Development Studio 创建的报告托管报告,添加到从 SQL 2012 创建的 VS 2010 上,我会尝试 B。如果您正在谈论本地存储在 VB.NET 应用程序中的客户端报告,我可能会猜测它们可能已升级到使用 .NET 4.5 的 2012 年,并且您可能正在尝试较低的框架,但这只是对最后一个框架的猜测而且这种可能性极小,因为 .NET 带有以前的版本,而且我认为它不会在不告诉您的情况下升级报告。

A:

您可以永远重新安装 2012,但不能让它使用 2008 的命名空间来存储数据。您需要使用 2012 年有效服务中的最新代理类,并将它们放入您的 C#/VB.NET 项目中。如果您不确定如何下载和调整代理类,我在这里有一个更详细的线程:使用 ReportService2010.asmx 以编程方式从共享点导出 SSRS 报告

// 
// 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)]
Run Code Online (Sandbox Code Playgroud)

B.

  1. 在磁盘上找到“RDL”报告的本地副本并复制它。
  2. 获取副本并使用文本编辑器打开它,我会使用 Notepad++ 或类似的东西。
  3. 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">
    
    Run Code Online (Sandbox Code Playgroud)