ग्रीटिंग्स,ढांचे को लक्षित करने का वास्तव में क्या अर्थ है, और मैं संगतता को अधिकतम कैसे कर सकता हूं?
इससे पहले मुझे पहली बार उलझन में आया क्योंकि मैंने पहली बार सी # में कोडिंग शुरू कर दी थी। मेरा लक्ष्य एक ऐसी असेंबली बनाना है जो उपयोगकर्ता के पास हाल ही में .NET ढांचे पर चलता है, जो भी हो सकता है। मैं स्थापित करने के लिए .NET 4 की आवश्यकता नहीं चाहता हूं, लेकिन यदि उपयोगकर्ता के पास यह है, तो मैं इसका उपयोग करना चाहता हूं, और सबसे महत्वपूर्ण बात यह है कि, यदि उपयोगकर्ता केवल .NET 4 और नीचे कुछ भी नहीं है, तो मैं इसे अभी भी काम करना चाहता हूं। मुझे संदेह है कि यह भी संभव नहीं है।
मैं वास्तव में समझ नहीं पा रहा हूं कि जब मैं विजुअल स्टूडियो में "लक्ष्य फ्रेमवर्क" बदलता हूं तो मैं क्या चुन रहा हूं। क्या इसका मतलब है "इस संस्करण और ऊपर के साथ संगत होगा"? या "केवल इस संस्करण के साथ संगत होगा"? ऐसा लगता है कि यह बाद वाला है; वर्चुअल मशीनों में मेरे परीक्षण दिखाते हैं .NET 4 लक्षित असेंबली .NET 4 के बिना विफल हो रही हैं, और .NET 3.5 लक्षित असेंबली .NET 3.5 के बिना विफल हो रही हैं। क्या इसे सेट करने का कोई तरीका नहीं है इसलिए मैं अधिकतम संगतता प्राप्त कर सकता हूं?
अद्यतन: स्पष्टीकरण के लिए, मेरे पास एक प्रोग्राम है जो .NET 2. को लक्षित करता है। यहां पोस्टर यह इंगित करते हैं कि इसे .NET 4 के साथ लोड करना चाहिए। लेकिन केवल .NET 4 के साथ वातावरण में और इससे पहले कुछ भी नहीं, यह विफल हो जाता है लोड करने के लिए।
अद्यतन 2: ठीक है, इसे समझ लिया गया है, लेकिन यहां पोस्टर की तुलना में यह कहीं अधिक जटिल है। मैं जटिलताओं पर चर्चा करने के लिए एक अलग सवाल खोल रहा हूं, लेकिन लघु संस्करण है, यदि आप .NET 4 पर non-.NET 4 असेंबली चलाने के लिए चाहते हैं तो आपको <supportedRuntime version="v4.0" />
के साथ एक app.config की आवश्यकता है। वे बिना लोड किए जाएंगे यह।
क्या मैं पूछ सकता हूं कि आप क्या लिखने की कोशिश कर रहे हैं कि आप इसे नवीनतम ढांचे का उपयोग करना चाहते हैं? ज्यादातर परिदृश्यों में, संभवतः जल्द से जल्द ढांचे में एक आवेदन लिखने के साथ चिपकाना स्वीकार्य है, अन्यथा आप विशिष्ट ढांचे के खिलाफ संकलन करने और स्थापित संस्करणों के आधार पर मिश्रण-और-मैच गेम खेलने की कोशिश कर रहे हैं। –
ऐसा नहीं है कि मैं वास्तव में नवीनतम ढांचे का उपयोग करना चाहता हूं, यह है कि मैं उन उपयोगकर्ताओं को चाहता हूं जिनके पास केवल .NET 4 स्थापित है, जिन्हें * gargantuan * .NET 3.5 ढांचे को डाउनलोड और इंस्टॉल करने की आवश्यकता नहीं है। –