Raspberry Pi 2 Mono .Net MySqlConncetor Fehler!

Gast #4289507
Lesenswert?
• ▲
▼
Hallo,

ich habe auf dem Raspberry Pi 2 Mono

(Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-4+rpi1) installiert 
und auch eine KonsolenApplication mit Datenbank anbindung (MySql) 
geschrieben.

Ich habe die .exe und die MySql.Data.dll System.Data.dll auf den 
Raspberry kopiert.

Wenn ich die exe mit #mono test.exe starte erhalte ich folgenden Fehler:

Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 
'System.Data, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089' or one of its dependencies.
File name: 'System.Data, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089'
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: 
Could not load file or assembly 'System.Data, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its 
dependencies.
File name: 'System.Data, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089'
Gast #4289526
Lesenswert?
• ▲
▼
ebenso wie die Meldung:

Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 
'MySql.Data, Version=6.8.6.0, Culture=neutral, 
PublicKeyToken=c5687fc88969c44d' or one of its dependencies.
File name: 'MySql.Data, Version=6.8.6.0, Culture=neutral, 
PublicKeyToken=c5687fc88969c44d'
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: 
Could not load file or assembly 'MySql.Data, Version=6.8.6.0, 
Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its 
dependencies.
File name: 'MySql.Data, Version=6.8.6.0, Culture=neutral, 
PublicKeyToken=c5687fc88969c44d'
Gast #4289534
Lesenswert?
• ▲
▼
was mich wunder ist wenn die Aus dem bin Ordner die Datei 
"MySql.Data.dll" kopiere auf den Mac kopiere wird daraus 
"mysql.data.dll" von da aus kopiere ich sie dann auf den Raspberry muss 
ich sie dann wieder umbenennen?
Gast #4290837
Lesenswert?
• ▲
▼
jetzt bekomme ich folgende Meldung wenn ich die .exe ausführe

Unhandled Exception:
System.TypeInitializationException: An exception was thrown by the type 
initializer for MySql.Data.MySqlClient.MySqlConnection ---> 
System.TypeInitializationException: An exception was thrown by the type 
initializer for System.Collections.Generic.Queue`1 ---> 
System.InvalidProgramException: Invalid IL code in 
System.Collections.Generic.Queue`1:.cctor (): method body is empty.

  --- End of inner exception stack trace ---
  at 
MySql.Data.Common.Cache`2[System.String,MySql.Data.MySqlClient.MySqlConn 
ectionStringBuilder]..ctor  (Int32 initialCapacity, Int32 capacity) 
[0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.MySqlConnection..cctor () [0x00000] in 
<filename unknown>:0
  --- End of inner exception stack trace ---
  at MySQLReadWrite.Program.init () [0x00000] in <filename unknown>:0
  at MySQLReadWrite.Program.Main (System.String[] args) [0x00000] in 
<filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: 
An exception was thrown by the type initializer for 
MySql.Data.MySqlClient.MySqlConnection ---> 
System.TypeInitializationException: An exception was thrown by the type 
initializer for System.Collections.Generic.Queue`1 ---> 
System.InvalidProgramException: Invalid IL code in 
System.Collections.Generic.Queue`1:.cctor (): method body is empty.

  --- End of inner exception stack trace ---
  at 
MySql.Data.Common.Cache`2[System.String,MySql.Data.MySqlClient.MySqlConn 
ectionStringBuilder]..ctor  (Int32 initialCapacity, Int32 capacity) 
[0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.MySqlConnection..cctor () [0x00000] in 
<filename unknown>:0
  --- End of inner exception stack trace ---
  at MySQLReadWrite.Program.init () [0x00000] in <filename unknown>:0
  at MySQLReadWrite.Program.Main (System.String[] args) [0x00000] in 
<filename unknown>:0
Gast #4291084
Lesenswert?
• ▲
▼
ok danke dann bekomme ich folgende Meldungen:
Program.cs(2,7): error CS0246: The type or namespace name `MySql' could 
not be found. Are you missing an assembly reference?
Program.cs(11,10): error CS0246: The type or namespace name 
`MySqlDataReader' could not be found. Are you missing an assembly 
reference?
Program.cs(12,10): error CS0246: The type or namespace name 
`MySqlConnection' could not be found. Are you missing an assembly 
reference?
Program.cs(13,10): error CS0246: The type or namespace name 
`MySqlCommand' could not be found. Are you missing an assembly 
reference?
Gast #4291121
Lesenswert?
• ▲
▼
using System;
using MySql.Data.MySqlClient;

namespace MySQLReadWrite
{
  class Program
  {

    static MySqlDataReader Reader;
    static MySqlConnection connection = null;
    static MySqlCommand command;

    static void Main(string[] args)
    {
      init();

      int value = 0;

      //Endlosschleife
      while (true)
      {

        if (value==0)
        {
          value = 1;
        }
        else
        {
          value = 0;
        }

        writeTable_SerialInput(value);
        ReadTable_SerialOutput ();
        readSerialPort();

        System.Threading.Thread.Sleep(5000);
        Console.WriteLine(DateTime.Now.ToString());
      }
    }

    private static void init()
    {
      try
      {
        string myConnectionString = "SERVER=192.168.178.38;" +
          "PORT=3306;"+
          "DATABASE=xxx;" +
          "UID=xxx;" +
          "PASSWORD=xxx;";

        connection = new MySqlConnection(myConnectionString);
        command = connection.CreateCommand();
      }
      catch (Exception ex)
      {
        Console.WriteLine(ex.ToString());
      }
    }

    private static void ReadTable_SerialOutput()
    {
      try
      {
        command.CommandText = "SELECT * FROM Serial_input";
        connection.Open();
        Reader = command.ExecuteReader();

        while (Reader.Read())
        {
          string row = "";
          for (int i = 0; i < Reader.FieldCount; i++)
          {
            row += Reader.GetValue(i).ToString() + ", ";
            Console.WriteLine(row);
          }
        }
        connection.Close();
      }
      catch (Exception ex)
      {
        Console.WriteLine(ex.ToString());
      }
    }

    /// <summary>
    /// Schreibt die gelesenen Werte von der seriellen Schnittstelle in 
die Datenbank
    /// </summary>
    /// <returns></returns>
    private static void writeTable_SerialInput(int value)
    {
      try
      {
        string sqlFormattedDate = DateTime.Now.ToString("yyyy-MM-dd 
HH:mm:ss");
        string myInsertQuery = "INSERT INTO Serial_input (Alarm, Datum, 
Kommentar)  Values(" + value + ",'" + sqlFormattedDate + "', 'test')";
        command = new MySqlCommand(myInsertQuery);
        command.Connection = connection;
        connection.Open();
        command.ExecuteNonQuery();
        command.Connection.Close();
      }
      catch (Exception ex)
      {
        Console.WriteLine(ex.ToString());
      }
    }

    private static void readSerialPort()
    {

    }
  }
}
Gast #4291143
Lesenswert?
• ▲
▼
Compiler aufruf:
dmcs Program.cs -r:MySql.Data.dll -r:System.dll -r:System.Data.dll

dann kommt:

warning CS8001: SDK path could not be resolved
error CS0009: Metadata file `/home/pi/ReadSerialPort/System.Data.dll' 
does not contain valid metadata
Compilation failed: 1 error(s), 1 warnings
Gast #4291157
Lesenswert?
• ▲
▼
geht bei mir unter Debian mit mono

dmcs test.cs -r:MySql.Data.dll -r:System.Data

musste nur die Zeile mit dem SerialPort auskommentieren.

habe nur die MySql.Data.dll noch mit ins verzeichniss gelegt.
Gast #4291186
Lesenswert?
• ▲
▼
bass schrieb:
> Ich habe die .exe und die MySql.Data.dll System.Data.dll auf den
> Raspberry kopiert.
>
> Wenn ich die exe mit #mono test.exe starte erhalte ich folgenden Fehler:

Warum arbeitest du überhaupt mit C# wenn das Zielsystem ein Linux ist? 
Mit Python würde es wahrscheinlich längst laufen.
Gast #4291197
Lesenswert?
• ▲
▼
Karl schrieb:
> Warum arbeitest du überhaupt mit C# wenn das Zielsystem ein Linux ist?
> Mit Python würde es wahrscheinlich längst laufen.

es gibt halt Leute die wert auf Typsicherheit legen. Und sich nicht mit 
scripten beschäftigen wollen.

Ich kann es nachvollziehen.
Gast #4291307
Lesenswert?
• ▲
▼
bass schrieb:
> Welche Versionen hast du denn von MySql.Data.dll und System.Data???

MySql.Data.dll aktuelle aus dem Netz
System.Data keine Ahnung, mono ist bestimmt schon 1 Jahr alt.

Hast du etwa die System.Data mit hin kopiert?

Bei mir ist es aber ein normales x68 System, kein rpi.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren