2009-01-25 9 views
11

संभव डुप्लिकेट:
.NET windows application, can it be compressed into a single .exe?क्या मैं exe (विजुअल स्टूडियो में) में डीएल शामिल कर सकता हूं?

मेरी अनुप्रयोग चलाने मैं AxInterop.WMPLib.dll और Interop.WMPLib.dll कि डीबग में स्थित हैं की जरूरत है और फ़ोल्डर रिलीज करने के लिए। क्या उन डीएलएस को exe में शामिल करने का कोई तरीका है, इसलिए मेरा ऐप केवल एक फ़ाइल में उपलब्ध है?

+0

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

उत्तर

19

जब तक आपके डीएलएल .NET असेंबली होते हैं, तब ILMerge आपके exe और इसकी सभी निर्भरताओं को एक फ़ाइल में संयोजित करने में सक्षम होना चाहिए।

+1

यह आईएलएमर्ज पेज पर भी ध्यान दिया गया है लेकिन डब्ल्यूपीएफ ऐप्स के लिए इसका उपयोग किया जाता है: http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr -विया-सी-थर्ड-संस्करण.एएसपीएक्स – Menefee

0

उन्हें एम्बेड के रूप में शामिल करें। फिर आप उन्हें रन-टाइम पर निकाल सकते हैं।

-2

उदाहरण के लिए, प्रोजेक्ट में x.dll जोड़ें और एंबेडेड संसाधन में अपनी बिल्ड एक्शन सेट करें।

निकालने के लिए:

string AppPath=Assembly.GetExecutingAssembly().Location; 
Assembly ThisAssembly=Assembly.LoadFrom(AppPath); 
System.IO.Stream fs=ThisAssembly.GetManifestResourceStream("yourproectname.x.dll"); 
int ssize=(int)fs.Length; 
byte [] buf=new byte[ssize]; 
fs.Read(buf,0,ssize); 
fs.Close(); 
+2

पहली दो पंक्तियां "असेंबली इस एस्परप्लेस = असेंबली.गेटएक्सिंगिंगएस्परब्स();" की एक अनावश्यक जटिलता है। फिर अंत में यह लाइन गायब है: "असेंबली। लोड (बफ);"। अंत में, यह एक भयानक समाधान है क्योंकि आप केवल लोड किए गए असेंबली को प्रतिबिंब के माध्यम से एक्सेस कर सकते हैं। –

0

हाँ, मैं कोड बाहर छोड़ दिया फ़ाइल को लिखने के लिए ...

FileStream so=new FileStream("c:\\\wherever\\\x.dll",FileMode.Create); 

so.Write(buf,0,ssize); 

so.Close(); 

कोई अतिरिक्त आवश्यक उपयोगिताओं।

4

आप boxedapp या Thinstall जैसे किसी उपकरण का उपयोग कर सकते हैं ...

4

मैं भी boxedapp सलाह देते हैं। यह बहुत अच्छा ऐप है!

+2

मैं BoxedApp का उपयोग करना पसंद करता हूं। यह बहुत आसान है !!! – MastAvalons

+0

इसके अलावा यह $ 500CAD के आसपास खर्च करता है। – MatBee

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

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