Создание дистрибутива с Fr 1.2.26
Добрый день!
Имеется VS 2008 PE. И FastReport .NET 1.2.26 Demo
У меня на компе все работает и компилируется. Попробовал создать дистрибутив программы и установить на соседний комп. Установилось, но вот в этом месте программы (вторая строка) выдает ошибку 5 (аргумент не правильный). Проверил userInput - не пустой, данные корректные (отчет).
FReport = New Report
---> FReport.Load(userInput)
FReport.SetParameterValue("MyParamIndex", CurrentRecord.Index)
FReport.SetParameterValue("MyParamConnection", ConnectionString)
If FReport.Prepare() Then FReport.ShowPrepared()
NET Framework установлен. Другой софт (без FR) работает корректно. Все dll, которые идут с проектом - скопированы. Решил, что еще что то нужно: установил FR и на этот комп - все равно ошибка. Что еще посмотреть и поправить???
Спасибо!
Имеется VS 2008 PE. И FastReport .NET 1.2.26 Demo
У меня на компе все работает и компилируется. Попробовал создать дистрибутив программы и установить на соседний комп. Установилось, но вот в этом месте программы (вторая строка) выдает ошибку 5 (аргумент не правильный). Проверил userInput - не пустой, данные корректные (отчет).
FReport = New Report
---> FReport.Load(userInput)
FReport.SetParameterValue("MyParamIndex", CurrentRecord.Index)
FReport.SetParameterValue("MyParamConnection", ConnectionString)
If FReport.Prepare() Then FReport.ShowPrepared()
NET Framework установлен. Другой софт (без FR) работает корректно. Все dll, которые идут с проектом - скопированы. Решил, что еще что то нужно: установил FR и на этот комп - все равно ошибка. Что еще посмотреть и поправить???
Спасибо!
Комментарии
Приведите, пожалуйста, стек ошибки.
Как это получить?
На машине студии нет, там только установлена программа... И по on error goto я вываливаюсь в ошибку, которую и написал.
PS Обновился до 1.4.25 (сейчас скачал), установил на вторую машину скомпилированную программу - та же ситуация
Возможные причины:
- не найден файл отчета с указанным именем
- в отчете используется chart, а ms chart control не установлен
- не найдены dll fastreport'a (не скопированы в каталог с .exe)
Да нет, все вроде есть из этого:
- файл отчета берется с базы (поток). Проверено: размер потока имеет верное значение.
- chart и т.п. не используется
- в каталоге с экзешником лежат:
FastReport
FastReport.Bars
...скопировал все, что лежит в соответствующем каталоге от VS /release/bin
Вот, более подробное исследование:
(На рабочей машине, с установленной VS, FastReport и т.д. все работает корректно.)
На ОТДЕЛЬНЫЙ компьютер установлена скомпилированная программ (+ все необходимые компоненты).
Дополнительно убраны перехватчики ошибок.
При вызове отчета выходит следующее сообщение:
Не могу найти объект MySqlDataConnection
Детали:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
FastReport.Utils.ClassException: Не могу найти объект MySqlDataConnection
at FastReport.Utils.FRReader.Read()
at FastReport.Base.DeserializeSubItems(FRReader reader)
at FastReport.Base.Deserialize(FRReader reader)
at FastReport.Data.Dictionary.Deserialize(FRReader reader)
at FastReport.Utils.FRReader.Read(IFRSerializable obj)
at FastReport.Report.DeserializeSubItems(FRReader reader)
at FastReport.Base.Deserialize(FRReader reader)
at FastReport.Report.Deserialize(FRReader reader)
at FastReport.Utils.FRReader.Read(IFRSerializable obj)
at FastReport.Report.Load(Stream stream)
at Abiturient.FrmMain.ReportPrint(Object sender, EventArgs e) in C:\VBWork\Student New\Student\FrmMain.vb:line 3023
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.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: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
Abiturient
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///c:/Program%20Files/SM%20Soft/Abiturient/Abiturient.exe
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
FastReport
Assembly Version: 1.4.25.0
Win32 Version: 1.4.25.0
CodeBase: file:///c:/Program%20Files/SM%20Soft/Abiturient/FastReport.DLL
System.Data
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
MySql.Data
Assembly Version: 5.0.9.0
Win32 Version: 5.0.9.0
CodeBase: file:///c:/Program%20Files/SM%20Soft/Abiturient/MySql.Data.DLL
System.Transactions
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll
System.EnterpriseServices
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.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.
Конец Детали *********************************************
В рабочий каталог с программой скопированы ВСЕ! Dll, от FR и MySQL. - не работает.
Установил FR - проблема не решилась.
Открыл дизайнер отчета и в плагинах добавил скомпилированную ранее FastReport.MySQL.dll
(расположив ее в том же месте, что и на РАБОЧЕЙ машине) - проблема РЕШИЛАСЬ.
При копировании этой длл в каталог программы (и удалении ссылки на ее из плагинов дизайнера)
- ошибка возникает снова. Отсюда сделан вывод, что ссылка на эту длл в ОТЧЕТЕ сидит абсолютная
Вопрос:
Что и где переназначить в отчете (видимо?), чтоб эта длл бралась от программы, а не от FR
PS/ В отчете ничего такого не нашел может в проекте программы добавить референс на эту длл по типу такого (скопировал из текста деталей выше)?:
MySql.Data
Assembly Version: 5.0.9.0
Win32 Version: 5.0.9.0
CodeBase: file:///c:/Program%20Files/SM%20Soft/Abiturient/MySql.Data.DLL
Проверял на РАБОЧЕЙ машине, где компилировался проект.
К проекту добавил референс на FastReport.MySQL.dll, установил копировать в локальную папку. Скомпилировал. Исходную длл скрыл, оставил только в папке с программой - не работает: хочет чтобы длл лежала там, откуда была добавлена плагином к дизайнеру.
3) register the dll programmatically
- add the "FastReport.MySQL.dll" reference to your project;
- execute the following code once at the application start:
FastReport.Utils.RegisteredObjects.AddConnection(typeof(MySqlDataConnection));
В этом случае плагином к дизайнеру (Вид/Настройки/Плагины) добавлять не надо.
Прочитал. Спасибо за подсказку!
Только еще помочь бы чуток
в референсах библиотеку добавил,
эту строку: FastReport.Utils.RegisteredObjects.AddConnection(typeof(MySqlDataConnection)) вставил первой в программе: ругается, что Name 'MySqlDataConnection' is not declared
Спасибо
или обратиться полностью: ...typeof(FastReport.Data.MySqlDataConnection)
Я согласен, что я тупой дурак но снова чего то не то:
Private Sub ReportPrint(ByVal sender As System.Object, ByVal e As System.EventArgs)
FastReport.Utils.RegisteredObjects.AddConnection(TypeOf (FastReport.Data.MySqlDataConnection))
Error 1 'MySqlDataConnection' is a type in 'Data' and cannot be used as an expression
Error 2 'Is' expected. (между последними скобками)
FastReport.Utils.RegisteredObjects.AddConnection(GetType(FastReport.Data.MySqlDataConnection))
СПАСИБО!!!! РАБОТАЕТ!