如何在Windows 10上运行旧的RDLC报告

时间:2015-09-11 13:01:29

标签: .net reporting-services

我最近升级到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。但即使我这样做,我仍然会得到同样的例外。

你们有没遇到过这个问题?如果是这样,你是如何解决的?

0 个答案:

没有答案