2016-09-30 5 views
2

У меня есть проект в WinForms C#, который я создал внутреннюю папку reports, чтобы добавить мои отчеты RDLC, ее работа прекрасна, когда я разрабатываю, проблема в том, что я создаю Setup для установки приложения с помощью InstallShield Limited Edition, потому что после установки приложения I попробуйте выполнить отчет и выбросить исключение, а не показать его.Как получить путь к внутренней папке?

Развитие Я думаю, что его работы, так как исполняемый файл создается в 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. 

Внутренняя папка

enter image description here

+0

Как файлы отчетов упакованы в ваш проект установки? – Dai

ответ

1

Решение зависит от Build Action имущества этих rdlc файлов в проекте:

  • Build Action является Вмещенный ресурс

    Если Build Action - Embedded Resource, тогда вам не нужно использовать путь к файлу. Эти доклады были встроены в ваш исполняемый файл, и вы можете использовать их таким образом:

    reportViewer1.LocalReport.ReportEmbeddedResource = "Sample.Reports.Report1.rdlc"; 
    

    его поведение по умолчанию при добавлении отчета в проект. Visual Studio устанавливает действие сборки как внедренный ресурс.

  • Сложение Действие является Content И Копировать в выходной каталог является Copy Всегда

    Если Build Action идентификатор Content и Copy To Output Directory является Copy Always, то ваш файл будет найти под бен папку вашего проект под тем же именем папки, которое есть в решении.Таким образом, вы можете найти их таким образом:

    var path = System.IO.Path.Combine(Application.StartupPath, "Reports", "Report1.rdlc"); 
    reportViewer1.LocalReport.ReportPath = path; 
    

Примечание

  • В первом варианте в Sample.Reports.Report1.rdlc, Sample является пространством имен, Reports это имя папки и Report1.rdlc это имя отчета ,
  • Если вы использовали второй вариант, убедитесь, что ваш инструмент для создания файлов копирует эти файлы в выходной каталог под папкой \Reports.
+0

вот и все. Большое спасибо ! – FernandoPaiva

+1

Добро пожаловать :) –

1

пару дней, прежде чем я столкнулась с такой же вопрос в Windows Store App, я просто заменил назад слэш, т. е. «\» с косой чертой i .e. "/". Пример: -

@../../reports/MyReport.rdlc 

Насколько я исследовал на него в некоторых случаях обратный слэш используется для Linux.

+0

Можете ли вы рассказать мне полный полный путь к вашему каталогу проектов? то есть из C: // ... и так далее? –

+0

Кроме того, вы можете попробовать удалить «../../», хотя я не уверен, но в некоторых случаях приложение i.e. «.Exe» по умолчанию расположено в корневом каталоге. –

+0

после установки - 'C: \ Program Files (x86) \ Iguana Sistemas \ Controle de Vendas' – FernandoPaiva

1

~/отчеты/MyReport.rdlc

~ будет получить корневой

+0

Это не имеет смысла для проекта Windows Forms. В вопросе есть тег WinForms. –

Смежные вопросы