报告定义无效

时间:2013-03-28 06:03:48

标签: c# report rdlc

我已将.rdlc转发从SSRS 2005转换为SSRS 2008.现在,当我要构建该项目时,我遇到了错误。

  

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

请给我解决方案。

8 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

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

完成后,我的程序再次开始编译。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

我不完全确定为什么@ user2702793的答案被投了票,因为这个建议只是挽救了我的职业生涯:

考虑

  1. 创建空白SSRS 2008报告并将SSRS 2005报告中的所有内容复制到新报告中
  2. 如果要保持报告名称不变,请复制SSRS 2005报告的名称
  3. 删除该报告(您刚刚将内容复制到新报告中的SSRS 2005)
  4. 重命名新的SSRS 2008(已删除SSRS 2005报告的内容)并粘贴报告名称。
  5. 我有一个非常类似的情况,除了我想保留我的SSRS旧版本而不是升级它。这基本上让我制作了旧版本的副本,将内容从意外升级的报告中复制出来并将其粘贴到复制的报告中,然后复制升级后的报告的名称,删除它并重命名我复制的报告以保留相同的名称刚刚删除的报告。

    编辑:当然,在我的情况下,我还希望对旧报告进行更改,这些更改都在升级后的报告中,因此我需要花费大量时间来避免丢失当前的更改。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

  • 这对我有用......

答案 7 :(得分:-1)

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