Package: libmysql6.4-cil
Version: 6.4.3-4
Severity: important
Tags: patch
Dear Maintainer,
To provide DbProviderFactory support, the client component needs to be
registered in the machine.config file as well as the GAC.
In the machine.config file for each .NET version supported in /etc/mono,
look for section: <system.data><DbProviderFactories> and add the following:
<add
name="MySql Data Provider"
invariant="MySql.Data.MySqlClient"
description=".NET Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,
Version=6.4.3.0, Culture=neutral, PublicKeyToken=20449f9ba87f7ae2"
/>
You will see other database entries already there.
Attached is a program which tests the entry:
mcs -pkg:dotnet TestFactory.cs
mono TestFactory.exe
Cheers, and thanks!
Chris.
-- System Information:
Debian Release: stretch/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.6.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages libmysql6.4-cil depends on:
ii cli-common 0.9+nmu1
ii libmono-corlib4.5-cil 4.2.1.102+dfsg2-8
ii libmono-system-configuration-install4.0-cil 4.2.1.102+dfsg2-8
ii libmono-system-data4.0-cil 4.2.1.102+dfsg2-8
ii libmono-system-drawing4.0-cil 4.2.1.102+dfsg2-8
ii libmono-system-transactions4.0-cil 4.2.1.102+dfsg2-8
ii libmono-system-xml4.0-cil 4.2.1.102+dfsg2-8
ii libmono-system4.0-cil 4.2.1.102+dfsg2-8
libmysql6.4-cil recommends no packages.
libmysql6.4-cil suggests no packages.
using System;
using System.Data;
using System.Data.Common;
namespace TestFactory
{
public class Program
{
const string PROVIDER_ORACLE = "System.Data.OracleClient";
const string PROVIDER_MYSQL = "MySql.Data.MySqlClient";
const string PROVIDER_PSQL = "Npgsql";
public static int Main( string[] args )
{
try
{
ListFactories();
TestFactory( PROVIDER_ORACLE );
// TestFactory( PROVIDER_MYSQL );
TestFactory( PROVIDER_PSQL );
}
catch( Exception ex )
{
Console.WriteLine( "..exception: " + ex.Message
);
}
return 0;
}
static void TestFactory( string name )
{
Console.WriteLine( "..test: {0}", name );
DbProviderFactories.GetFactory( name );
Console.WriteLine( " ..works" );
}
static void ListFactories()
{
Console.WriteLine( "..available factories:" );
DataTable dt = DbProviderFactories.GetFactoryClasses();
foreach( DataRow dr in dt.Rows )
{
foreach( DataColumn dc in dt.Columns )
{
Console.WriteLine( " {0}: {1}",
dc.ColumnName, dr[dc] );
}
Console.WriteLine();
}
}
}
}