【问题标题】:The report definition is not valid报告定义无效
【发布时间】:2013-03-18 12:02:53
【问题描述】:

我已将.rdlc rerort 从 SSRS 2005 转换为 SSRS 2008。现在当我要构建该项目时出现错误。

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

请给我解决方案。

【问题讨论】:

  • 您使用的是哪个版本的 Visual Studio?有些人似乎对this线程中提出的解决方案很幸运
  • Visual Studio 2010 和 VS2012。我在两个版本中都试过了,但都遇到了同样的错误
  • 所以线程中的解决方案对您不起作用? (抱歉,这是关于我在该领域的专业知识的程度)

标签: c# report rdlc


【解决方案1】:

因为我遇到了同样的问题,所以偶然发现了这个问题。在我的例子中,我引用了旧版本的 ReportViewer.WinForms。当我切换版本时,一切正常。可能与您的情况不同,但只是想我会插话以防其他人找到此页面。

【讨论】:

  • 它是通过什么方式“引用”的,你在哪里切换的?我的项目没有任何References 部分...
【解决方案2】:

我遇到了几乎类似的问题,但在另一个版本的 Visual Studio(2012 年)中,我发现问题来自 Microsoft.ReportViewer.WebForms.dll 或 winforms 的版本。您可能仍在引用与您当前版本的 Visual Studio 相关的旧版本,因此请检查 dll 版本,如果是,请将其删除并添加最新版本

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,我的解决方案是编辑文件:

    C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0
        \ReportingServices\Microsoft.ReportingServices.targets
    

    并更改之前所说的第 2 行:

    <UsingTask TaskName="Microsoft.Reporting.RdlCompile" 
    AssemblyName="Microsoft.ReportViewer.Common, Version=9.0.0.0, 
    Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    

    到这里:

    <UsingTask TaskName="Microsoft.Reporting.RdlCompile" 
    AssemblyName="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, 
    Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    

    完成后,我的程序又开始编译了。

    【讨论】:

      【解决方案4】:

      我有完全相同的问题。 对我来说,解决方案是从项目中排除报告并再次添加它。之后就编译成功了。

      【讨论】:

        【解决方案5】:

        我不完全确定为什么@user2702793 的回答被否决了,因为这个建议挽救了我的职业生涯:

        考虑

        1. 创建空白 SSRS 2008 报告并将 SSRS 2005 报告中的所有内容复制到新报告中
        2. 如果要保持报告名称不变,请复制 SSRS 2005 报告的名称
        3. 删除该报告(SSRS 2005,您刚刚将内容复制到新报告中)
        4. 重命名新的 SSRS 2008(其中包含已删除的 SSRS 2005 报告的内容)并粘贴报告名称。

        我遇到了上面提到的非常相似的情况,只是我想保留我的 SSRS 旧版本而不是升级它。这基本上让我复制了旧版本,从意外升级的报告中复制内容并将其粘贴到复制的报告中,复制升级报告的名称,删除它并重命名我复制的报告以保留相同的名称刚刚被删除的报告。

        编辑:当然,就我而言,我还希望对旧报告进行更改,这些更改都在升级后的报告中,因此我进行了长时间的工作以防止丢失我当前的更改。

        【讨论】:

        • 当然,您需要重新导入您可能一直在使用的所有图像并重新添加数据集,以便您填充的任何 tablix 都能找到它正在寻找的数据集。
        【解决方案6】:

        对我有用的解决方案是运行 .NET 清理工具,我先尝试了 .NET 框架修复工具,但它不起作用。我看了建议here

        【讨论】:

          【解决方案7】:

          在 webform 的 ReportViewer 属性中展开 LocalReport/Path 字段中放置正确的报告路径

          • 这对我有用...

          【讨论】:

            【解决方案8】:

            这可能是转换问题。重新创建一个新的 2008 年报告。 我建议使用VS2010。我在用 VS2012 编辑报表时遇到了同样的问题。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-10-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多