У нас есть продукт C # на основе dot net 2.0, который использует Mysql в качестве хранилища данных.Когда мы устанавливаем соединитель mysql 6.3.6 на компьютер с XP / Win 7, мы можем без проблем подключаться к базе данных из кода C #.Но мы сталкиваемся с проблемой при подключении к базе данных mysql, когда соединитель mysql на самом деле не установлен на машине, а просто находится в том же каталоге, что и исполняемый файл.Мы не хотим устанавливать соединитель на каждом компьютере, на котором мы хотим, чтобы продукт работал.Мы хотим, чтобы dll-коннектор использовался напрямую, так как мы используем любые dll сторонних производителей (например, logger) в нашем коде.
Даже когда мы копируем mysql.data.dll в тот же каталог, где установлен exe,он создает, но не подключается к базе данных.
Ошибка:
Невозможно найти запрошенный поставщик данных .Net Framework.Может быть не установлен Blockquote
Техническая информация:
- Mysql 5.0
- C #
- Dot Net framework 2.0
- Mysql Connector 6.3.6 (та же проблема возникает с версией 6.0.3 SQL-коннектора)
- Win XP / Win 7
Когда мы используем ASP.Net, мы можемукажите приведенный ниже тег в web.config, и мы можем подключиться к базе данных mysql напрямую, поместив dll в каталог bin
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.0.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Почему мы не можем сделать то же самоевещь в C # для приложения Client Server в среде рабочего стола.