Причината, поради която изключението се хвърля веднага щом въведете метода, е проста - JIT компилаторът трябва само да разреши препратките тогава. MySqlConnection изисква System.Data и това е първият метод за това, така че тогава се генерира изключението.
Що се отнася до отстраняването на грешки на проблема, изглежда като неправилно инсталирана .NET рамка на целевата машина. Трябва да опитате Как да активиране на регистриране на грешки при свързване на сглобяване (Fusion) в .NET за да видите къде всъщност .NET се опитва да намери библиотеката и защо изобщо отхвърля всичко, което намери.
Ако това не ви накара да решите проблема си, бих опитал да деинсталирам и преинсталирам .NET framework 2.0 и след това 3.5.
Причината, поради която Copy Local работи, е, че тогава приложението не се опитва да зареди DLL от Global Assembly Cache, а по-скоро от изпълнимата директория на вашето приложение. Истинският ви проблем обаче е, че не намира правилния DLL в GAC.
Ако Fusion ви покаже, че библиотеката MySQL се опитва да зареди грешна версия на System.Data, можете да използвате манифест на приложението, за да го принудите да зареди различна версия (която се надяваме да е съвместима). Можете да прочетете за манифестите на приложения тук - http:// msdn.microsoft.com/en-us/library/aa374191(VS.85).aspx
Успех.