【问题标题】:Publishing RDLC files发布 RDLC 文件
【发布时间】:2011-03-29 17:10:45
【问题描述】:

我的 WPF 应用程序中有一些 RDLC 文件。当我发布项目时,报告文件没有发布,当我尝试使用客户端访问它们时,我收到一条错误消息,指出找不到它们。我检查了发布文件夹,确实,它们不在那里。我使用以下代码调用 RDLC 文件:

Microsoft.Reporting.WinForms.ReportViewer rvReportViewer;
/* ... */
rvReportViewer.LocalReport.ReportPath = string.Format("Reports/{0}.rdlc", ReportName);

我已经尝试将这些上的构建操作设置为“资源”,这是我的静态图像文件所拥有的,但这似乎没有任何区别。

为什么不将报告复制到发布目录?有没有办法强制这种情况发生,或者我应该以其他方式访问它们?

谢谢!

【问题讨论】:

    标签: c# visual-studio-2010 reportviewer


    【解决方案1】:

    我不知道 RDLC 文件是否有特殊问题,但这是确保发布其他文件的一般方法。

    在解决方案资源管理器中右键单击文件,选择属性。将“Bu​​ild Action”设置为“Content”,将“Copy to output Directory”设置为“Copy if newer”。

    进入项目属性->发布页面。点击“应用程序文件按钮”,选中“显示所有文件”。将“发布状态”设置为“包含(自动)”

    文件属性

    应用程序文件

    【讨论】:

    • 使用这些设置会将每个 rdlc 文件的附加副本发布到 bin 文件夹。请参阅我的答案以了解替代设置。
    【解决方案2】:

    我一直在使用@nos 的答案一段时间,但我注意到在出版物中,.rdlc-files 集被复制到两个地方:

    1. 原webapplication项目相对位置;
    2. 在 bin 文件夹内。

    所以如果我有\Reports\Report1.rdlc,我会在发布的位置找到:

     1. <published folder>\Reports\Report1.rdlc;
     2. <published folder>\bin\Reports\Report1.rdlc.
    

    我并不是要在第二个位置使用 rdlc 的副本,实际上,如果我删除这些副本,仍然会生成报告。

    我将每个 rdlc 文件的设置更改为:

    Build Action: Content;
    Copy to Output Directory: Do not copy.
    

    现在没有任何内容写入第二个位置。

    【讨论】:

    • 发布选项卡与 2017 不同,因此这些选项不可用。 @tbirangi 答案对我有用。我能够选择多个 rdlc 文件,右键单击,然后将构建操作设置为所有这些文件的内容。它们在发布时被复制,并且没有 bin 文件夹副作用。
    【解决方案3】:

    对不起,这与“始终复制”或“如果更新则复制”无关。事实上,我将其设置为“从不复制”。 通过将构建操作从“嵌入式资源”更改为“内容”来解决此问题。然后在您构建和发布时,RLDC 文件将被复制到正确的位置。

    【讨论】:

      【解决方案4】:

      而不是使用 .ReportPath

      1. **使用以下代码:

      reportViewer1.LocalReport.ReportEmbeddedResource="[Project
      Name].[FolderName if Exist].[ReportName].rdlc";
      
      1. 然后重建您的部署项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-10
        • 1970-01-01
        • 1970-01-01
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多