读取资源文件'C:\ .. Report.rpt'时出错 - '系统找不到指定的文件。 “

时间:2013-11-10 11:06:46

标签: c# visual-studio crystal-reports

继续使用上一个帖子here

我所做的是复制并粘贴.cs文件所在的.rpt文件,并将其移动到\ bin \ Debug文件夹中。它工作,但当我删除.cs文件所在的.rpt文件时,我收到错误...

  

读取资源文件'C:.. Report.rpt'时出错 - '系统找不到指定的文件。 '

我在btn方法中创建了一个动态路径...

private void btn_Click_1(object sender, EventArgs e)
    {
       ReportDocument cryRpt = new ReportDocument();
       cryRpt.Load(Application.StartupPath + "\\Report.rpt");
       crystalReportViewer1.ReportSource = cryRpt;
       crystalReportViewer1.Refresh();
    }

我的头脑中有很多问题,因为我将使用安装项目,因为我缺乏知识和经验,我有点混淆。

1)我应该将.rpt文件保留在.cs文件的位置,并将.rpt文件复制并粘贴到\ bin \ Debug文件夹中吗?

2)我还需要做点什么吗?这引出了另一个问题......我该怎么做?

3)当我查看.rpt文件的属性时,我可以看到完整路径目录。

所以我正在寻找指南。

如果有人可以帮助我,请提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以在项目中包含rpt文件并将其标记为:

  • 构建操作:无(因为它们未构建)
  • 复制到输出:始终复制或复制如果更新 - 这样它们将输出到与二进制文件相同的文件夹(在您的case \ bin \ Debug中)。

答案 1 :(得分:1)

好的.net被定义为使用所谓的Xcopy部署。即应用程序所需的所有文件最终都在输出文件夹中。在构建之后,您可以“在任何地方”复制该文件夹,您的代码将起作用。

通过将“额外”文件从机器上的任何位置复制到输出文件夹来实现。在@Syzmon定向时,将属性设置为copy if newercopy always,就是这样。

显然,为了将文件复制到原始必须存在的地方。当您从代码文件夹中删除它们时,您将VS保留在与删除cs文件时相同的位置,然后想知道为什么没有获得exe ...

所以基本上你做得对,只是不要删除原件。