C # एप्लिकेशन में संसाधन और एंबेडेड संसाधन के बीच क्या अंतर है?


89

मुझे एक या दूसरे का उपयोग कब करना चाहिए?

मैं उन सभी फ़ाइलों को पसंद करता हूँ, जिन्हें मैं अपने ऐप (इमेज, साउंड, xml फ़ाइल, आदि) में इस्तेमाल करता हूँ।। Exe फ़ाइल के अंदर होना चाहिए, इसलिए मैं फ़ोल्डर्स और फ़ाइलों के एक समूह के साथ तैनात नहीं करता।

जानकारी के लिए धन्यवाद।

जवाबों:


82

"संसाधन" और "सामग्री" बिल्ड क्रियाएं उरिस का उपयोग करके WPF संसाधनों तक पहुंचने के लिए हैं। हालांकि "एंबेडेड रिसोर्स" पूर्व प्रौद्योगिकियों के लिए है। हालाँकि दोनों विकल्प संसाधन को असेंबली में एम्बेड करते हैं लेकिन WPF के लिए "संसाधन" विकल्प का उपयोग किया जाता है।

MSDN यहां पूर्ण विवरण प्रदान करता है


आप सही हे! मैंने अपने WPF प्रोजेक्ट में सभी छवियों को संसाधन पर सेट किया और स्रोत को फिर से बनाया। अब जब मैं डीबग फ़ोल्डर में नेविगेट करता हूं तो मुझे कहीं भी फाइलें नहीं मिल रही हैं, उन्हें .exe का एक हिस्सा होना चाहिए, ठीक उसी तरह जो मैं चाहता हूं। आप पर्याप्त धन्यवाद नहीं कर सकते! :)
सर्जियो तापिया

1
MSDN लिंक टूट गया है। यहाँ अतिरिक्त स्पष्टीकरण बहुत अच्छा होगा।
माइकल हैरिस

7

WPF संसाधन (एक्शन बिल्ड = संसाधन ) कोर .NET फ्रेमवर्क द्वारा समर्थित एम्बेडेड संसाधनों का लाभ उठाता है, लेकिन एक पैक URI के माध्यम से एम्बेडेड संसाधन तक पहुँचने के लिए समर्थन जोड़ता है । से MSDN :

WPF संसाधन फाइलें एम्बेडेड या लिंक्ड प्रकार के संसाधनों के समान नहीं होती हैं जिन्हें असेंबली संसाधनों के लिए core .NET फ्रेमवर्क समर्थन का उपयोग करके कॉन्फ़िगर किया जा सकता है। जबकि WPF संसाधन फाइलें कोर .NET फ्रेमवर्क एम्बेडेड रिसोर्स सपोर्ट का लाभ उठाती हैं, नामस्थान का उपयोग करने की तुलना में पैक यूआरआई का उपयोग करते हुए WPF संसाधन फाइलों तक पहुंचने की क्षमता आसान है।


2

MSDN द्वारा रिपोर्ट की गई,

यदि आप कई परियोजनाओं के बीच अनुप्रयोग संसाधन (.resx) फ़ाइलों को साझा करने के लिए एंबेडेड संसाधन सबसे अच्छा विकल्प हैं। उदाहरण के लिए, यदि आपके पास एक सामान्य संसाधन फ़ाइल है जिसमें आपकी कंपनी के लोगो, ट्रेडमार्क जानकारी, और इस तरह, एम्बेडेड संसाधनों का उपयोग करने का मतलब है कि आपको केवल .resx फ़ाइल की प्रतिलिपि बनाना है, न कि संबंधित संसाधन डेटा फ़ाइलों की।

आप सीधे एम्बेडेड संसाधनों को संपादित नहीं कर सकते। यदि आप एक एम्बेडेड संसाधन को संपादित करने का प्रयास करते हैं, तो आपको एक संदेश प्राप्त होगा जो आपको आइटम को लिंक किए गए संसाधन में परिवर्तित करने के लिए प्रेरित करेगा। रूपांतरण अनुशंसित है लेकिन वैकल्पिक है। आपको उन्हें निर्यात करना चाहिए, एक बाहरी कार्यक्रम में अपने संशोधन करना चाहिए, और फिर उन्हें वापस अपनी परियोजना में आयात करना चाहिए।


4
यह प्रश्न का उत्तर नहीं देता है: एम्बेडेड संसाधन और संसाधन के बीच अंतर क्या है? आप केवल एंबेडेड संसाधन पते का जवाब देते हैं।
Grokys

3
प्रश्न का पाठ कहता है "मुझे एक या दूसरे का उपयोग कब करना चाहिए?"; मुझे लगता है कि मैंने इसका जवाब दिया। प्रश्न वास्तव में दो हैं।
kiamlaluno

1

सभी रिपोर्टों के लिए धन्यवाद, जिसने मुझे और अधिक सटीक रूप से खोजने में मदद की कि समस्या कहां थी: मेरे लिए, यह टास्क बार में प्रोजेक्ट आइकन के रूप में उपयोग की जाने वाली छवियां थीं जिन्हें संसाधनों के रूप में बनाया गया था और सामग्री के रूप में निर्मित किया जाना था। अन्य सभी छवियों का निर्माण संसाधनों के रूप में किया जा सकता है, कोई समस्या नहीं।

आशा है कि यह भविष्य के लिए मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.