C # MySql Connector / Проблемы с сетью - PullRequest
3 голосов
/ 10 октября 2011

В данный момент работает Mono. Я загрузил MySQL и установил соединитель / net в мою папку gac, расположенную в / usr / lib / mono / gac. Проблема в том, что каждый раз, когда я пытаюсь запустить его с помощью простого теста соединения, я получаю следующую ошибку:

** (/home/holland/Code/csharp/test/Test/bin/Debug/Test.exe:10278): WARNING **: The following assembly referenced from /home/holland/Code/csharp/test/Test/bin/Debug/Test.exe could not be loaded:
     Assembly:   MySql.Data    (assemblyref_index=1)
     Version:    6.4.4.0
     Public Key: c5687fc88969c44d
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/holland/Code/csharp/test/Test/bin/Debug/).


** (/home/holland/Code/csharp/test/Test/bin/Debug/Test.exe:10278): WARNING **: Could not load file or assembly 'MySql.Data, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies.

** (/home/holland/Code/csharp/test/Test/bin/Debug/Test.exe:10278): WARNING **: Missing method .ctor in assembly /home/holland/Code/csharp/test/Test/bin/Debug/Test.exe, type MySql.Data.MySqlClient.MySqlConnection

** (/home/holland/Code/csharp/test/Test/bin/Debug/Test.exe:10278): WARNING **: Could not load file or assembly 'MySql.Data, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies.

** (/home/holland/Code/csharp/test/Test/bin/Debug/Test.exe:10278): WARNING **: Missing method .ctor in assembly /home/holland/Code/csharp/test/Test/bin/Debug/Test.exe, type MySql.Data.MySqlClient.MySqlConnection

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'MySql.Data, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies.
File name: 'MySql.Data, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d'
  at Test.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 

Это должен быть файлом сборки, если я правильно помню

Вот мой код:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using MySql.Data.MySqlClient;

namespace Test
{
    public class Database
    {
        public Database()
        {

        }

        public static IDbConnection MainConnect()
        {
            string connectionInfo = 
            "Server=localhost;"+
            "Database=ecom_main;"+
            "User ID=root;"+
            "Password=xxxxxxx"+
            "Pooling=false;";

            return new MySqlConnection(connectionInfo);
        }
using System;
using System.Data;
using MySql.Data.MySqlClient;

namespace Test
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            IDbConnection dbMain = Database.MainConnect();

            Console.WriteLine(dbMain);
        }
    }
}

1 Ответ

4 голосов
/ 06 ноября 2011

У меня возникла та же проблема, и я решил ее, выполнив следующие действия:

  1. Сделайте регистр копирования соответствующим dll:
#cp mysql.data.dll MySql.Data.dll
  1. Установитесоединитель
    #gacutil -i -package 2.0 MySql.Data.dll
    Это устанавливается в GAC, а также добавляет символическую ссылку в /usr/lib/mono/2.0
  2. Если сборка не отображается в monodevelop, вы можете добавить ссылку на dll впроект для /usr/lib/mono/2.0

+ info: http://dev.mysql.com/doc/refman/5.1/en/connector-net-installation-unix.html

...