我在WinForms C#中创建了一个项目,我创建了一个内部文件夹reports
来添加我的RDLC报告,它在我开发时工作正常,问题出在我创建Setup
时使用InstallShield Limited Edition
安装应用程序,因为在安装应用程序后,我尝试执行报告并抛出异常而不显示它。
开发我认为它的工作原理是因为可执行文件是在Debug\bin
创建的,我使用@..\..\reports\MyReport.rdlc
获取了路径,但在创建Setup
并安装应用程序后,此文件夹reports
不存在。
我该如何解决这个问题?
打开我的报告。
reportViewer.LocalReport.ReportPath = @"..\..\reports\RelContasPagar.rdlc";
异常
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
Microsoft.Reporting.WinForms.LocalProcessingException: Ocorreu um erro durante o processamento de relatórios local. ---> System.ApplicationException: A definição do relatório 'RelFluxoCaixa' não foi especificada ---> System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files (x86)\reports\RelFluxoCaixa.rdlc'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at Microsoft.ReportingServices.StandalonePreviewStore.GetReportDefinition(PreviewItemContext itemContext)
--- End of inner exception stack trace ---
at Microsoft.ReportingServices.StandalonePreviewStore.GetReportDefinition(PreviewItemContext itemContext)
at Microsoft.Reporting.LocalService.GetCompiledReport(PreviewItemContext itemContext, Boolean rebuild, ControlSnapshot& snapshot)
at Microsoft.Reporting.LocalService.CompileReport()
at Microsoft.Reporting.LocalService.Microsoft.Reporting.ILocalProcessingHost.CompileReport()
at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
--- End of inner exception stack trace ---
at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
at Microsoft.Reporting.WinForms.LocalReport.SetParameters(IEnumerable`1 parameters)
at ControleDeVendas.reports.ViewReport.geraRelFluxoCaixa()
at ControleDeVendas.reports.ViewReport.executeTipoRelatorio()
at ControleDeVendas.reports.ViewReport.ViewReport_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
ControleDeVendas
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Program%20Files%20(x86)/Iguana%20Sistemas/Controle%20de%20Vendas/ControleDeVendas.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
NHibernate
Assembly Version: 4.0.0.4000
Win32 Version: 4.0.4.4000
CodeBase: file:///C:/Program%20Files%20(x86)/Iguana%20Sistemas/Controle%20de%20Vendas/NHibernate.DLL
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
FluentNHibernate
Assembly Version: 2.0.3.0
Win32 Version: 2.0.3.0
CodeBase: file:///C:/Program%20Files%20(x86)/Iguana%20Sistemas/Controle%20de%20Vendas/FluentNHibernate.DLL
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.GeneratedCode
Assembly Version: 1.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Xml.Linq
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
----------------------------------------
MySql.Data
Assembly Version: 6.9.8.0
Win32 Version: 6.9.8.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/MySql.Data/v4.0_6.9.8.0__c5687fc88969c44d/MySql.Data.dll
----------------------------------------
System.Transactions
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------
System.EnterpriseServices
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
----------------------------------------
System.Management
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Management/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Management.dll
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
Microsoft.ReportViewer.WinForms
Assembly Version: 11.0.0.0
Win32 Version: 11.0.3366.16 ((SQL11_SP1_RS_Dev12-RTM).130829-0516 )
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.ReportViewer.WinForms/11.0.0.0__89845dcd8080cc91/Microsoft.ReportViewer.WinForms.dll
----------------------------------------
Microsoft.ReportViewer.WinForms.resources
Assembly Version: 11.0.0.0
Win32 Version: 11.0.3366.16 ((SQL11_SP1_RS_Dev12-RTM).130829-0516 )
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.ReportViewer.WinForms.resources/11.0.0.0_pt_89845dcd8080cc91/Microsoft.ReportViewer.WinForms.resources.dll
----------------------------------------
Microsoft.ReportViewer.Common
Assembly Version: 11.0.0.0
Win32 Version: 11.0.3366.16 ((SQL11_SP1_RS_Dev12-RTM).130829-0516 )
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.ReportViewer.Common/11.0.0.0__89845dcd8080cc91/Microsoft.ReportViewer.Common.dll
----------------------------------------
Microsoft.ReportViewer.Common.resources
Assembly Version: 11.0.0.0
Win32 Version: 11.0.3366.16 ((SQL11_SP1_RS_Dev12-RTM).130829-0516 )
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.ReportViewer.Common.resources/11.0.0.0_pt_89845dcd8080cc91/Microsoft.ReportViewer.Common.resources.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
内部文件夹
答案 0 :(得分:1)
在Windows Store App中遇到相同问题之前的几天,我只用正斜杠替换了斜杠,即“\”,即“/”。 例如: -
@../../reports/MyReport.rdlc
到目前为止我研究过它在某些情况下反斜杠用于linux。
答案 1 :(得分:1)
〜/报告/ MyReport.rdlc
〜将获得root
答案 2 :(得分:1)
解决方案取决于项目中Build Action
个文件的rdlc
属性:
构建操作是嵌入式资源
如果Build Action
为Embedded Resource
,则您不需要使用文件路径。这些报告已嵌入您的可执行文件中,您可以这样使用它们:
reportViewer1.LocalReport.ReportEmbeddedResource = "Sample.Reports.Report1.rdlc";
将报告添加到项目时,这是默认行为。 Visual Studio将构建操作设置为嵌入式资源。
构建操作是内容而复制到输出目录 始终复制
如果Build Action
ID Content
和Copy To Output Directory
为Copy Always
,那么您的文件将在项目的bin文件夹下找到,该文件夹名称与解决方案。所以你可以这样找到它们:
var path = System.IO.Path.Combine(Application.StartupPath, "Reports", "Report1.rdlc");
reportViewer1.LocalReport.ReportPath = path;
注意强>
Sample.Reports.Report1.rdlc
的第一个选项中,Sample
是命名空间,Reports
是文件夹名称,Report1.rdlc
是报告名称。\Reports
文件夹下的输出目录中。