Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发布RDLC文件_C#_Visual Studio 2010_Reportviewer - Fatal编程技术网

C# 发布RDLC文件

C# 发布RDLC文件,c#,visual-studio-2010,reportviewer,C#,Visual Studio 2010,Reportviewer,我的WPF应用程序中有几个RDLC文件。当我发布项目时,报告文件不会被发布,当我尝试使用客户端访问它们时,我会收到一个错误,说找不到它们。我检查了发布文件夹,实际上,它们不在那里。我使用以下代码调用RDLC文件: Microsoft.Reporting.WinForms.ReportViewer rvReportViewer; /* ... */ rvReportViewer.LocalReport.ReportPath = string.Format("Reports/{0}.rdlc", R

我的WPF应用程序中有几个RDLC文件。当我发布项目时,报告文件不会被发布,当我尝试使用客户端访问它们时,我会收到一个错误,说找不到它们。我检查了发布文件夹,实际上,它们不在那里。我使用以下代码调用RDLC文件:

Microsoft.Reporting.WinForms.ReportViewer rvReportViewer;
/* ... */
rvReportViewer.LocalReport.ReportPath = string.Format("Reports/{0}.rdlc", ReportName);
我已经尝试将这些文件的构建操作设置为“Resource”,这是我对静态图像文件的设置,但这似乎没有任何区别

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


谢谢

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

在解决方案资源管理器中的文件上单击鼠标右键,选择“属性”。将“构建操作”设置为“内容”,将“复制到输出目录”设置为“如果更新,则复制”

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

文件属性

应用程序文件


我使用@nos的答案已经有一段时间了,但我注意到在出版物中,.rdlc文件集被复制到两个地方:

  • 原始webapplication项目的相对位置
  • 在bin文件夹中
  • 因此,如果我有\Reports\Report1.rdlc,我会在发布位置找到:

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

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

    而不是使用.ReportPath

  • **使用了以下代码:

  • 然后重建部署项目

  • 对不起,伙计们,这与“总是复制”或“如果更新就复制”无关。事实上,我将其设置为“从不复制”。
    通过将构建操作从“嵌入式资源”更改为“内容”,可以解决此问题“。然后,当您生成和发布RLDC文件时,会将其复制到正确的位置。

    使用这些设置会将每个rdlc文件的附加副本发布到bin文件夹中。”。查看我的答案以了解其他设置。发布选项卡与2017不同,因此这些选项不可用@tbirangi的回答对我有用。我能够选择多个rdlc文件,右键单击,并将构建操作设置为所有文件的内容。它们在发布时被复制,并且没有bin文件夹的副作用。
    Build Action: Content;
    Copy to Output Directory: Do not copy.
    
    reportViewer1.LocalReport.ReportEmbeddedResource="[Project
    Name].[FolderName if Exist].[ReportName].rdlc";