[Mono-bugs] [Bug 635335] New: Missing method System.Data.Common.DbConnection::EnlistTransaction(Transaction) when using a .NET 2.0 library and compiling with dmcs
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Sat Aug 28 12:13:37 EDT 2010
https://bugzilla.novell.com/show_bug.cgi?id=635335
https://bugzilla.novell.com/show_bug.cgi?id=635335#c0
Summary: Missing method
System.Data.Common.DbConnection::EnlistTransaction(Tra
nsaction) when using a .NET 2.0 library and compiling
with dmcs
Classification: Mono
Product: Mono: Class Libraries
Version: SVN
Platform: x86
OS/Version: Linux
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Sys.Data
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: denisv at post.skynet.lt
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8)
Gecko/20100722 Firefox/3.6.8
Mono version: Git 6445c9afe3e2649ec1c0bc41f859473545ab5d3f (pulled 2010-08-28)
OS: Debian Squeeze
When running a program that was compiled with dmcs and uses a .NET 2.0 library
(SQLite or MySql ADO.NET provider), I get a missing method exception in
System.Data. If the program is compiled with gmcs instead or uses the class
with the missing method directly, no exception is thrown.
Reproducible: Always
Steps to Reproduce:
1. Copy System.Data.SQLite.dll to working directory (attached)
2. Create test.cs with the following code:
/* code starts */
using System.Data.SQLite;
class Program
{
static void Main()
{
var connectionString = "Data Source=:memory:;Version=3";
var connection = new SQLiteConnection(connectionString);
connection.Open();
var command = new SQLiteCommand("CREATE TABLE Test(t int)",
con$
command.ExecuteNonQuery();
}
}
/* code ends */
3. dmcs -r:System.Data.SQLite.dll test.cs
4. mono test.exe
5. Notice the exception
6. gmcs -r:System.Data.SQLite.dll test.cs
7. mono test.exe
8. Notice that there is no exception
Actual Results:
The following exception is thrown when compiled with dmcs and run:
Missing method System.Data.Common.DbConnection::EnlistTransaction(Transaction)
in assembly
/opt/mono/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.dll,
referenced in assembly /tmp/bug2/System.Data.SQLite.dll
Unhandled Exception: System.MissingMethodException: Method not found:
'System.Data.Common.DbConnection.EnlistTransaction'.
at Program.Main () [0x00000] in <filename unknown>:0
Expected Results:
No exception is thrown
I've looked at 2.0 and 4.0 versions of Mono's System.Data.dll with Reflector
and method is present in both versions.
As noted above, no exception is thrown if program is compiled with gmcs and/or
NET 2.0 library is not used.
Mono.Data.Sqlite.dll could be used instead of System.Data.SQLite.dll, but the
same exception is also thrown when using mysql.data.dll and SQLite is easier to
reproduce (does not require a database server).
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list