8

यह प्रश्न शायद कई बार पहले पूछा गया है, लेकिन मुझे मेरे लिए काम करने के लिए सामान्य समाधान नहीं मिल रहा है। proposed solution "app.config" फ़ाइल में इस डाल करने के लिए है:.NET 4 पर केवल .NET 3.5 ऐप्स चलाना केवल सिस्टम

<configuration> 
    <startup> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

लेकिन एक सरल "नमस्ते दुनिया" कार्यक्रम के साथ, मैं अभी भी त्रुटि मिलती है: "इस चलाने के लिए क्रम का एक संस्करण को ढूंढने में असमर्थ आवेदन। "।

कुछ पृष्ठभूमि के लिए, मैं विंडोज एक्सपी (विंडोज 7 पर विंडोज वर्चुअल पीसी के माध्यम से) का उपयोग कर रहा हूं, और केवल एक्सपी पर .NET 4.0 रनटाइम स्थापित किया है।

कुछ शोध के बाद, मैं इस पेज पाया: http://msdn.microsoft.com/en-us/library/ee941656.aspx#core

यह "आपके आवेदन विन्यास फाइल आवेदन-name.config नाम पर है, तो आवेदन-name.exe.config लिए इसका नाम बदलना उल्लेख उदाहरण के लिए, नाम बदलें। MyApp.config MyApp.exe.config पर। "।

मैंने कोशिश की कि, यह समस्या हल कर सकती है, लेकिन मुझे अभी भी "इस एप्लिकेशन को चलाने के लिए रनटाइम का संस्करण ढूंढने में असमर्थ" है। जब मैं .NET 4.0 के साथ WinXP पर .NET 3.5 (क्लाइंट प्रोफ़ाइल या पूर्ण) अनुप्रयोग चलाने की कोशिश करता हूं।

+1

यह अच्छी तरह से काम करने के लिए जाना जाता है। आपने वास्तव में इसे "MyApp.exe.config" का नाम नहीं दिया था, है ना? MyApp को अपने प्रोग्राम के नाम से बदलें। –

+0

नहीं, मैंने इसे "app.config" से "app.exe.config" में बदल दिया है क्योंकि इसे पहले से ही "app.config" नाम दिया गया था। मेरे कार्यक्रम का नाम वास्तव में "testOnNet40only" है। नीचे दिए गए नाथन को लगता है कि उपयोगकर्ता को सीएलआर 2.0-3.5 की जरूरत है, हालांकि मुझे यकीन नहीं है कि कुछ भी काम करेगा या नहीं। –

+1

ऐसा लगता है कि मैं किस बारे में बात कर रहा हूं। "app.exe.config" कोई अच्छा नहीं है, आपको इसे "testOnNet40Only.exe.config" नाम देना होगा। और यदि आप होस्टिंग प्रक्रिया सक्षम के साथ डीबगर का उपयोग करते हैं तो इसे "testOnNet40Only.vshost.exe.config" नाम दिया जाना चाहिए। –

उत्तर

6

मैंने इसे क्रैक किया। यह डाफ्ट लग सकता है, लेकिन यह पता चला है कि कॉन्फ़िगरेशन फ़ाइल को उपयोगकर्ता के फ़ोल्डर में अंतिम निष्पादन योग्य के साथ होना आवश्यक है। मेरे सभी शोध के बाद, यह कहीं भी स्पष्ट नहीं किया गया था। मैं सोच रहा था कि इसका उपयोग केवल डेवलपर के फ़ोल्डर में होने के उद्देश्यों को संकलित करने के लिए किया गया था।

वीएस संपादक फ़ाइल सूची में, यह "app.config" के रूप में रह सकता है। हालांकि, संकलित होने पर, वीएस स्वचालित रूप से "{ProgramName} .exe.config" बनाता है (और इसे बिन/रिलीज़ फ़ोल्डर में रखता है)। यह वह फ़ाइल है जिसे निष्पादन योग्य के साथ अंतिम उपयोगकर्ता के फ़ोल्डर में जाना आवश्यक है।

संक्षेप में, हां, एक सिस्टम पर .NET 3.5 ऐप चलाने के लिए संभव है जिसमें केवल .NET 4.0 स्थापित है।