Powód, dla którego wyjątek jest zgłaszany, gdy tylko wprowadzisz metodę, jest prosty — kompilator JIT musi wtedy tylko rozwiązać referencje. MySqlConnection wymaga System.Data i jest to pierwsza metoda, która to robi, więc wtedy jest zgłaszany wyjątek.
Jeśli chodzi o debugowanie problemu, wygląda na to, że niewłaściwie zainstalowano platformę .NET na maszynie docelowej. Powinieneś spróbować Jak to zrobić włączyć rejestrowanie błędów powiązania zestawu (Fusion) w .NET aby przyjrzeć się, gdzie .NET faktycznie próbuje znaleźć bibliotekę i dlaczego w ogóle odrzuca wszystkie znalezione.
Jeśli to nie doprowadzi Cię do rozwiązania problemu, spróbuję odinstalować i ponownie zainstalować .NET Framework 2.0, a następnie 3.5.
Powodem, dla którego działa kopiowanie lokalne, jest to, że aplikacja nie próbuje załadować biblioteki DLL z globalnej pamięci podręcznej zestawów, ale raczej z katalogu wykonywalnego aplikacji. Jednak Twoim prawdziwym problemem jest to, że nie znajduje właściwej biblioteki DLL w GAC.
Jeśli Fusion pokazuje, że biblioteka MySQL próbuje załadować niewłaściwą wersję System.Data, możesz użyć manifestu aplikacji, aby zmusić ją do załadowania innej wersji (która powinna być zgodna). Możesz przeczytać o manifestach aplikacji tutaj — http:// msdn.microsoft.com/en-us/library/aa374191(VS.85).aspx
Powodzenia.