2010-05-28 8 views
8

मेरे पास एक ऐप है जो 32-बिट सिस्टम पर ठीक काम करता है, लेकिन XP 64 बिट सिस्टम पर विफल रहता है। मैं कनेक्शन स्ट्रिंग इस प्रकार मेरी app.config में परिभाषित करने के लिए इसे नीचे ट्रैक करने के बाद:app.config और 64-बिट मशीन

<connectionStrings> 
    <clear/> 
    <add name="IFDSConnectionString" 
     connectionString="Data Source=fdsdata;Initial Catalog=IFDS; 
     Trusted_Connection=true;Connect Timeout=0" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

जब मैं कोड में यह संदर्भित करने के लिए प्रयास करते हैं, मुझे लगता है कि ConfigurationManager.ConnectionStrings संग्रह केवल से LocalSqlServer कनेक्शन स्ट्रिंग शामिल machine.config फ़ाइल और मेरी कस्टम स्ट्रिंग नहीं।

एक और विचित्रता यह है कि जब मैं विजुअल स्टूडियो से ऐप चलाता हूं तो यह ठीक काम करता है। यह तब होता है जब मैं रिलीज़ फ़ोल्डर से बाहर चला जाता हूं कि कनेक्शन स्ट्रिंग को परिभाषित नहीं किया जाता है। एप्लिकेशन की .exe.config फ़ाइल रिलीज फ़ोल्डर में .exe फ़ाइल के साथ है और अद्यतित है।

+0

क्या आपने वास्तव में इसे मूलभूत कंसोल ऐप में दोहराने का प्रयास किया है? मैं Win7 64-बिट का उपयोग कर रहा हूं और इस तरह कुछ भी नहीं देखा है। तो शायद यह XP के लिए विशिष्ट है, या यह 64-बिट मशीनों पर app.config के अलावा कुछ और है। –

उत्तर

1

कनेक्शन स्ट्रिंग को devenv.exe.config फ़ाइल में जोड़ें।

यह स्थित है

विजुअल स्टूडियो 2010

$$ installLocation $$ \ माइक्रोसॉफ्ट विजुअल स्टूडियो 10.0 \ Common7 \ IDE \ devenv.exe.config

विजुअल स्टूडियो 2008

$$ इंस्टॉललोकेशन $$ \ माइक्रोसॉफ्ट विजुअल स्टूडियो 9.0 \ कॉमन 7 \ आईडीई \ devenv.exe.config

3

मुझे अंततः स्पष्टीकरण मिला: http://social.msdn.microsoft.com/forums/en-US/clr/thread/c25cd2c0-653d-4890-97b8-d2c9ceda2949/

संक्षेप में, यह व्यवहार तब होता है जब एप्लिकेशन के लिए एक मेनिफेस्ट फ़ाइल का उपयोग किया जाता है। उस स्थिति में, ढांचा application_name.config की तलाश में है, application_name.exe.config नहीं। एक वर्कअराउंड ऐप बनाने के बाद कॉन्फ़िगरेशन फ़ाइल का नाम बदलना है। एक और प्रकट करने के लिए विधानसभा नोड जोड़ने के लिए है। मेरे अपने मामले में, मैं बस मैनिफेस्ट फ़ाइल को हटाने में सक्षम था और जीवन एक बार फिर अच्छा है।