2011-10-04 8 views
5

मैं अपने ग्राहक के लिए आवेदन के लिए स्रोत पुनर्प्राप्त करने पर काम कर रहा हूं। मैंने .NET Reflector का उपयोग कर एप्लिकेशन कोड पुनर्प्राप्त करने में कामयाब रहा है। लेकिन अब मैं कोड को साफ करना चाहता हूं और व्यक्तिगत रूपों को फिर से बनाना चाहता हूं ताकि मेरे पास प्रत्येक रूप के लिए कोडबेइंड, डिजाइनर और रेसएक्स फाइलें हों। समस्या यह है कि सभी छवियां ".resources" फ़ाइलों में स्थित हैं। मैं इन ".resources" फ़ाइलों से छवियों को कैसे निकालूं जो परावर्तक द्वारा उत्पन्न किए गए थे?मैं .NET असेंबली के एक डीकंपाइल द्वारा बनाई गई .resources फ़ाइल से छवियों को कैसे निकाल सकता हूं?

मैं प्रोग्रामेटिक रूप से छवियों को निकालने के बजाय कुछ टूल का उपयोग करना पसंद करूंगा, लेकिन यदि मुझे उपयुक्त एप्लिकेशन नहीं मिल रहा है तो मैं कोड का सहारा लेगा। तो यहां मैं उम्मीद कर रहा हूं कि किसी ने इन संसाधन फ़ाइलों के लिए दर्शक (अधिमानतः मुफ़्त!) के बारे में पहले या जानता है जो मुझे छवियों को निकालने की अनुमति देगा। अन्यथा, कोड भी अच्छा है; क्योंकि मैं छवियों को निकालने के लिए अपना खुद का छोटा एप्लीकेशन लिख सकता था।

+0

परावर्तक भी ऐसा कर सकता है, एक असेंबली के संसाधन नोड खोलें। संसाधन पर राइट-क्लिक करें और इस रूप में सहेजें का चयन करें। –

+0

मैंने प्रतिबिंबक के साथ छवियों को निकालने का प्रयास किया है, लेकिन जहां तक ​​मैं देख सकता हूं, परावर्तक केवल .resources फ़ाइल को सहेजता है, यह आपको इन फ़ाइलों में बीएमपी प्रारूप में शामिल बिटमैप्स को सहेजने नहीं देता है ... जब तक कि मुझे कुछ याद नहीं आ रहा है ? जब आप एक .resources फ़ाइल का चयन करते हैं तो यह बिटमैप्स की एक सूची देता है, लेकिन जब मैं बिटमैप पर राइट क्लिक करता हूं, तो एक विकल्प "सेव" होता है जो दुर्भाग्य से ग्रे हो जाता है। हो सकता है कि यह एक भुगतान संस्करण में एक फीचर है जो परीक्षण संस्करण में अनुपलब्ध है जिसका मैं उपयोग कर रहा हूं? – BruceHill

उत्तर

9

इस कार्यक्रम में आपकी मदद http://www.codeproject.com/KB/dotnet/Extracting_Embedded_Image.aspx

+2

धन्यवाद, sepulka। मैंने प्रोग्राम से परीक्षण किया है जिसे आपने यहां लिंक किया है और यह अच्छी तरह से काम करता है। :) मुझे यह प्रोग्राम भी मिला जो मैंने भी उपयोग किया, http://jasonhaley.com/blog/post/2005/10/09/Resource-File-Extractor.aspx। इस पर मदद के लिए आपका धन्यवाद। – BruceHill

+1

दुर्भाग्य से कोडप्रोजेक्ट समाधान मेरी निर्मित परियोजना को असेंबली के रूप में नहीं पहचानता है। क्लाइव टोंग का जवाब मेरे लिए काम किया। –

+0

+1 - codeproject.com प्रोजेक्ट पुराना है (.NET 2.0 VS2008 PRK) - इसलिए सुनिश्चित करें कि आप .NET के संस्करण को अपडेट और पुन: संकलित करते हैं जिसका आप अभी उपयोग कर रहे हैं।वीएस2017 .NET 4.5 में मेरे लिए बिल्कुल सही काम करता है। – MDV2000

7

ILSpy यह काम करना चाहिए - http://wiki.sharpdevelop.net/ILSpy.ashx पर सुविधाओं और नीचे स्क्रीनशॉट देखें।

screenshot

+1

यह केवल आपको संसाधनों को .resources फ़ाइल के रूप में सहेजने की अनुमति देता है। जहां तक ​​मैं कह सकता हूं, यह आपको संसाधन फ़ाइल से बिटमैप छवियों को निकालने नहीं देता है। – BruceHill

+0

अजीब, स्क्रीनशॉट में प्रत्येक बिटमैप – poupou

+1

HI Poupou के लिए एक सहेजें बटन है। सहायता का प्रयास करने के लिए धन्यवाद। हाँ, वह स्क्रीनशॉट भ्रामक है और इसे ऐसा दिखता है, लेकिन यह वास्तव में आपको _.resources_ फ़ाइल में मौजूद छवियों को सहेजने नहीं देता है। मेरे मामले में, यदि मैं स्क्रीनशॉट में _resources_ फ़ोल्डर का चयन करता हूं, तो मुझे छवि फ़ाइलों में पहली प्रविष्टि की तरह संसाधन फ़ाइलों की एक सूची मिलती है। तो मेरे मामले में, सूचीबद्ध प्रविष्टियों में से कोई भी वास्तविक बीएमपी फाइल नहीं है, लेकिन संसाधन फ़ाइलों में बिटमैप्स शामिल हैं। अगर मैं प्रतिबिंबक में संसाधन फ़ाइलों को देखता हूं, तो मैं प्रत्येक फ़ाइल में मौजूद बिटमैप्स की एक सूची देख सकता हूं, लेकिन डिस्क पर इन अलग-अलग बिटमैप को सहेज नहीं सकता। – BruceHill

25

आप .resources फ़ाइल को बचा सकता है और उसके बाद resgen उपकरण (VS2010 उपकरण का हिस्सा) का उपयोग एक .resx फाइल में इसे वापस कन्वर्ट करने के लिए, एक आदेश का उपयोग जैसे लाइन:

resgen foo.resources bar.resx 

.resx को फिर सी # प्रोजेक्ट में जोड़ा जा सकता है। एक बार ऐसा करने के बाद, यदि आप अलग-अलग छवियों को खोलने का प्रयास करते हैं, तो VS2010 उन्हें एक स्टैंडअलोन छवि फ़ाइल में निकालने की पेशकश करेगा।

+0

+1! मुफ़्त [वीएस2013 सामुदायिक संस्करण] (https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) .resx फ़ाइलों को खोलने और इससे सामान निकालने में भी सक्षम है। – rustyx

-1

JustDecompile ऐसा कर सकता है। आप संसाधन पर राइट-क्लिक कर सकते हैं और संदर्भ मेनू से सहेजें का चयन कर सकते हैं।

+0

कोशिश की, यह नहीं है। यह सिर्फ उन्हें एक स्ट्रिंग 'सिस्टम के रूप में दिखाता है। बाइट [] '। –

संबंधित मुद्दे