我已将.rdlc
转发从SSRS 2005转换为SSRS 2008.现在,当我要构建该项目时,我遇到了错误。
报告定义无效。详细信息:报表定义具有无效的目标名称空间“http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition”,无法升级。
请给我解决方案。
答案 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的答案被投了票,因为这个建议只是挽救了我的职业生涯:
考虑
我有一个非常类似的情况,除了我想保留我的SSRS旧版本而不是升级它。这基本上让我制作了旧版本的副本,将内容从意外升级的报告中复制出来并将其粘贴到复制的报告中,然后复制升级后的报告的名称,删除它并重命名我复制的报告以保留相同的名称刚刚删除的报告。
编辑:当然,在我的情况下,我还希望对旧报告进行更改,这些更改都在升级后的报告中,因此我需要花费大量时间来避免丢失当前的更改。
答案 5 :(得分:0)
对我有用的解决方案是运行.NET清理工具,我首先尝试了.NET框架修复工具但它不起作用。我阅读了建议here
答案 6 :(得分:0)
在webform中的ReportViewer属性中,在字段中展开LocalReport / Path,放置正确的报告路径
答案 7 :(得分:-1)
这可能是转换问题。重新创建新的2008年报告。 我建议使用VS2010。使用VS2012编辑报表时遇到同样的问题。