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

时间:2013-06-21 20:24:37

标签: .net visual-studio-2010 reporting-services report-designer

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

报告专家需要,继续... ...

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

1)Visual Studio 2010,带有SQL Server 2012

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

在我到达它们之前,报告运行正常。 -sigh -

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

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

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

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

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

报告查看器是10.0.0

.Net是4.0

感谢您提供任何提示

Mac McCaskie

3 个答案:

答案 0 :(得分:7)

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

请务必引用正确的ReporViewer dll版本:

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

答案 1 :(得分:2)

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

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)]

  1. 在&#39; RDL&#39;的磁盘上查找本地副本报告并复制它。
  2. 拿起副本并用文本编辑器打开它,我会使用Notepad ++或类似的东西。
  3. RDL作为一种语言对我来说并没有真正改变,(我甚至不会看到设计师在2008R2和2012之间的差异)。所以沿着这条线你可以试一试,看看它是否可行。编辑&#39;&lt;节点报告&#39;靠近顶部是这样的:

    < 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">
    

答案 2 :(得分:0)

我已经使用SQL2008 R2 启动了一个报告项目,并且所有项目文件都使用了架构:

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/

我的报告服务器是SQL2008 NOT R2并且部署报告导致错误:

  

报告定义无效。详细信息:报告定义具有无效的目标命名空间

诀窍是将项目TargetServerVersion设置为SQL 2008和Build。然后Bin \ Release文件夹中的所有文件都将具有正确的架构,例如

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/

enter image description here