我刚刚将一个VS2008应用程序迁移到VS2013。当地一切都很好。然而,当部署时,我的报告崩溃,并出现以下错误:
An error occurred during local report processing.
The report definition for report 'myReport' has not been specified
Could not find file 'D:docrootappdevwsdsapplicationReportmyReport.rdlc'.
从我的aspx页面调用如下:
<rsweb:ReportViewer ID="myReport" runat="server" Font-Names="Verdana"
Font-Size="8pt" Height="750px" Width="850px" >
<localreport reportpath="ReportmyReport.rdlc">
<datasources>
<rsweb:ReportDataSource DataSourceId="dsReportStuff"
Name="reportStuffDataSet_reportStuff" />
</datasources>
</localreport>
</rsweb:ReportViewer>
到底发生了什么?这段代码在我2008年安装的报表查看器10上运行得很好。由于迁移,我已升级到报表查看器11。
尴尬的是,我发现了。。。对.NET来说还是有点陌生,它显示了这一点。显然,当您发布一个新项目时,.NET不会复制.rdlc文件。
所以我在服务器上有一个报表文件夹,里面有我所有的.aspx文件,但没有报表文件。甚至没有想过要检查一下(拍脑袋)。
Boo。
编辑:
几周后(在将许多VS08应用程序迁移到VS13之后),我发现有一个非常简单的设置可以确保.rdlc文件被复制。只需选择.rdlc文件,在属性窗口中,确保"Build Action"设置为"Content"(我的文件都设置为"Embedded Resource")。我还将"复制到输出目录"设置为"始终复制"。
我只是想补充一下,以防这件事发生在其他发现自己在这里的人身上。