我最近升级到Windows 10.一旦我们这样做,我的项目就失去了生成RDLC报告的能力。 RDLC文件已经运行了好几年了,只需要很少的修改。我们从我们的Web应用程序生成报告,并使用ASP.Net WinForms报告查看器控件显示它们。这是我们用于生成报告的代码。
private LocalReport GenerateReport(LocalReport report, List<ReportParameter> parameters)
{
try
{
string filePath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
var reportPath = Path.Combine(filePath, @"bin\FinalReport.rdlc");
// if file doesn't exist, try an alternate path. This is for development.
if (!File.Exists(reportPath))
{
reportPath = Path.Combine(filePath, @"bin\Reports\FinalReport.rdlc");
}
report.ReportPath = reportPath;
if (!File.Exists(report.ReportPath)) throw new FileLoadException(string.Format("Cannot find file {0} to load", report.ReportPath));
report.SetParameters(parameters);
report.Refresh();
return report;
}
catch (Exception ex)
{
Logging.Logger.Log(ex);
throw new Exception("An error occurred while generating the report.", ex);
}
}
当我尝试使用代码“report.Refresh();”生成报告时,我得到一个异常,说:“报告定义无效。详细信息:报表定义具有无效的目标名称空间“http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition”,无法升级。“
我认为这与需要运行旧版本的Microsoft.ReportViewer dll有关。我确保在机器上安装了.Net 3.5。 (Windows 10默认不安装)。我确保将Microsoft.ReportViewer dll的项目引用设置为10.0版本并将“特定版本”设置为true。但即使我这样做,我仍然会得到同样的例外。
你们有没遇到过这个问题?如果是这样,你是如何解决的?