विधि में प्रवेश करते ही अपवाद को फेंकने का कारण सरल है - JIT कंपाइलर को केवल तब संदर्भों को हल करने की आवश्यकता होती है। MySqlConnection के लिए System.Data की आवश्यकता होती है, और यह ऐसा करने का पहला तरीका है, इसलिए जब अपवाद फेंका जाता है।
समस्या को डीबग करने के लिए, ऐसा लगता है कि लक्ष्य मशीन पर अनुचित तरीके से .NET फ्रेमवर्क स्थापित किया गया है। आपको कोशिश करनी चाहिए कैसे करें .NET में असेंबली बाइंड विफलता लॉगिंग (फ़्यूज़न) सक्षम करें यह देखने के लिए कि .NET वास्तव में पुस्तकालय को कहां खोजने की कोशिश कर रहा है, और यह किसी भी चीज को क्यों छोड़ देता है।
यदि यह आपको आपकी समस्या का समाधान करने के लिए प्रेरित नहीं करता है, तो मैं .NET Framework 2.0, और फिर 3.5 की स्थापना रद्द करने और पुनः स्थापित करने का प्रयास करूंगा।
स्थानीय प्रकार के कार्यों की प्रतिलिपि बनाने का कारण यह है कि तब एप्लिकेशन ग्लोबल असेंबली कैश से डीएलएल लोड करने का प्रयास नहीं करता है, बल्कि आपके आवेदन की निष्पादन योग्य निर्देशिका से होता है। हालांकि, आपकी असली समस्या यह है कि उसे जीएसी में सही डीएलएल नहीं मिल रहा है।
यदि फ़्यूज़न आपको दिखाता है कि MySQL लाइब्रेरी System.Data के गलत संस्करण को लोड करने का प्रयास करती है, तो आप इसे एक अलग संस्करण लोड करने के लिए मजबूर करने के लिए एक एप्लिकेशन मेनिफेस्ट का उपयोग कर सकते हैं (जो उम्मीद से संगत होना चाहिए)। आप एप्लिकेशन मैनिफ़ेस्ट के बारे में यहां पढ़ सकते हैं - http:// msdn.microsoft.com/en-us/library/aa374191(VS.85).aspx
शुभकामनाएँ।