Янус Xml сохранить метод абстрактных встреч не удается VB.NET 2010
Я использую dll Janus Schedule (и другие ссылки Janus, такие как janus.common, janus.calendar.dll) для сохранения встреч в файле xml (я использую Janus Winforsv
control suite v 3.0).
Я успешно запустил приложение на моем компьютере, но при запуске программы на другом компьютере, программа вызывает ошибку при вызове SaveAppointments
метод, ошибка приходит в Schedule1.SaveAppointments(поток)...
Метод таков:
Private Sub SaveAppointments()
Dim stream As System.IO.Stream
If (fileName Is Nothing) Then
If (saveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then
fileName = saveFileDialog1.FileName
stream = saveFileDialog1.OpenFile()
Else
Return
End If
Else
stream = New System.IO.FileStream(fileName, System.IO.FileMode.Create)
stream.Position = 0
Schedule1.SaveAppointments(stream) ''*******HERE IS THE ERROR
stream.Close()
stream = Nothing
appointmentsChanged = False
End If
End Sub
Я получаю ошибку:
System.TypeLoadException: Abstract Method with non-zero RVA
at Janus.Windows.Common.Layouts.PropertyValue.a(XmlWriter , IJanusLayout
at Janus.Windows.Common.Layouts.JanusLayoutWriter.a(XmlWriter , IJanusLayout )
at Janus.Windows.Common.Layouts.JanusLayoutWriter.FillStream(Stream stream)
at Janus.Windows.Schedule.Schedule.SaveAppointments(Stream stream)
at FOEA.MainForm.SaveAppointments()
at C:\FOE\UI\MainForm.vb:línea 78
at FOEA.MainForm.MainMenu_Click(Object sender, EventArgs e)
at C:\FOEA\UI\MainForm.vb:line 143
at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
at System.Windows.Forms.MenuItem.MenuItemData.Execute()
at System.Windows.Forms.Command.Invoke()
at System.Windows.Forms.Command.DispatchID(Int32 id)
at System.Windows.Forms.Control.WmCommand(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.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)
Во-первых, я подозревал, что целевой компьютер должен иметь.NET 3.5 для Xml.linq.dll
, но я ссылался на dll, а затем назначил Copy local значение true и добавил все необходимые dll, все еще выбрасывая эту ошибку...
Другое предположение это имя System.Xml.dll
это не то же самое, что DLL в моем каталоге bin (System.XML.dll
) может верхний регистр заставляет vb.net не распознавать XML-dll?, но я не думаю, что это связано с ошибкой.
Я установил:
- Профиль клиента Microsoft .NET 4 Framework
- Microsoft .NET 4 Framework Extended
- MSXML 4.0 SP2 Парсер и SDK
- MSXML 4.0 SP3 Parser
на целевом ПК, но это не сработало... При получении этой ошибки содержимое файла xml удаляется, файл schedule.xml все еще там и пуст.
Я не знаю, что делать, потому что программа запускается на моем компьютере и на другом компьютере, который у меня есть, но не работает на целевом ПК... Как вы думаете, мне следует установить winforms Janus на целевой ПК? может быть, что работа woulc
1 ответ
Я использовал Янус некоторое время назад. Метод сохранения встреч, который я использовал:
Private Sub SaveAppointments()
Me.Cursor = Cursors.WaitCursor
Dim appointmentsDir As String = "yourAppsFile.xml"
Dim appointmentsStream As System.IO.FileStream
appointmentsStream = New System.IO.FileStream(appointmentsDir, System.IO.FileMode.Create)
Schedule1.SaveAppointments(appointmentsStream)
appointmentsStream.Close()
Me.Cursor = Cursors.Default
End Sub
Также убедитесь, что файл XML имеет все корни и элементы (правильно сформированный XML)
В янус 3.5
<?xml version="1.0" encoding="utf-8"?>
<Schedule>
<Fields Collection="true" ElementName="Field" />
<Owners Collection="true" ElementName="Owner" />
<Appointments Collection="true" ElementName="Appointment">
<Appointment0>
<Description>test </Description>
<EndTime>10/10/2011 11:00:00</EndTime>
<Text>test </Text>
<StartTime>10/10/2011 10:30:00</StartTime>
</Appointment0>
</Appointments>
</Schedule>