我在安装项目时如何将项目中包含的文件夹复制到另一个位置

时间:2013-03-12 09:13:46

标签: c# reportviewer rdlc

我们使用c#创建了Windows应用程序。我们使用Microsoft Report ViewerRdlc Pages创建了大量报告。但是当我们在另一个系统中安装项目时,报告将不会生成,因为它显示错误喜欢

  

无法找到Report.rdlc文件

那么如何解决呢?当我安装应用程序时,是否可以将系统中包含Rdlc页面的文件夹复制到目标系统的指定位置?

任何其他方式给予永久路径或相对路径? 我使用Microsoft Report Viewer和Rdlc创建了报告。我的代码是

            reportViewer1.Reset();

            con.Open();
            Manufactures ds = new Manufactures();

            SqlCommand cmd = new SqlCommand("Stp_ManufacturerReport_Fetch", con);
            cmd.Parameters.AddWithValue("@CompName", cbCompName.Text);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            //da.Fill(ds, "Manufactures");
            DataTable dt = new DataTable();
            da.Fill(dt);
            reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
            reportViewer1.LocalReport.ReportPath = "D:\\Abhith\\TTS\\Cabin\\TTS form Beta\\TTS form Beta\\Manufacturer.rdlc";//PATH OF REPORT
            reportViewer1.LocalReport.DataSources.Clear();
            reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("Manufactures_ManufacturerReport", dt));//FILLING SOURCE FOR REPORT
            reportViewer1.RefreshReport();//REFRESHING THE REPORT`.

问题在于路径。当我在另一个系统中使用此应用程序时,找不到路径。所以报告没有生成。任何解决方案?

1 个答案:

答案 0 :(得分:0)

我已将Build action文件中的.rdlc指定为Embedded Resource,然后在代码中将其引用如下:

this.reportViewerScraps.LocalReport.ReportEmbeddedResource = "Backa_Artiklar_2.ScrapReportDocument.rdlc";

编辑:根据askers评论添加信息

我在解决方案资源管理器中有rdlc文件:

rdlc in Solution Explorer

将您的代码行更改为:

reportViewer1.LocalReport.ReportEmbeddedResource = "<namespace>.Manufacturer.rdlc";

请记住将<namespace>更改为您的应用程序命名空间