2009-02-08 17 views
32

में फ़ाइलें कैसे स्टोर करें ठीक है, इसलिए मैं सी # में अपने स्वयं के इंस्टॉलर प्रोग्रामिंग पर काम कर रहा हूं, और मैं जो करना चाहता हूं वह है .exe में फ़ाइलों को रखने की लाइनों के साथ कुछ है, इसलिए मैं कर सकता हूं फ़ाइल करें। कॉपी (फ़ाइल, दायर);एक EXE

या, यदि यह संभव नहीं है, तो क्या मैं ऐसा करने का प्रयास कर रहा हूं?

+0

जिज्ञासा से बाहर, आप अपने स्वयं के इंस्टॉलर प्रोग्रामिंग क्यों कर रहे हैं? –

+2

यह देखने के लिए कि क्या मैं वास्तव में कर सकता था। – S3THST4

+29

लोग हमेशा आपको "कोड कोड कोड" कोड बताते हैं, जब तक आप वास्तव में कुछ कोड नहीं करते हैं, तब तक वे सभी TEH WHEEEEEEL – Rayne

उत्तर

28

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

System.IO.File.WriteAllBytes(@"C:\MyFile.bin", ProjectNamespace.Properties.Resources.MyFile); 
+0

आपकी प्रतिक्रिया के लिए धन्यवाद, यही वह है जिसे मैं ढूंढ रहा हूं। ठीक है, इसलिए मैं File.Copy() का उपयोग कर रहा हूं; और मुझे फ़ाइलपैथ के लिए एक स्ट्रिंग अधिभार की आवश्यकता है। कोई भी सुझाव पीएस- कोशिश की गई। ToString(); – S3THST4

+0

सी # प्रोजेक्ट के साथ क्या गलत है जो मैंने आपको ऊपर से जोड़ा है, स्रोत कोड के साथ पूरा करें? क्या वह नहीं है जिसे आप ढूंढ रहे हैं? –

+0

यह दिखाने के लिए अपडेट किया गया कि आप System.IO.File.WriteAllBytes –

4

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

फिर आप बाद में इस KB से निर्देश का उपयोग करके एम्बेडेड संसाधनों का उपयोग कर सकते हैं: http://support.microsoft.com/kb/319292

8

ईमानदारी से, मैं नहीं अपने खुद के संस्थापक बनाने आप सुझाव है। इंस्टॉलर बनाने के साथ कई सारे मुद्दे हैं। यहां तक ​​कि बड़े इंस्टॉलर निर्माता अब भी अपने वास्तविक इंस्टॉलर नहीं बनाते हैं, वे सिर्फ कस्टम एमएसआई पैकेज बनाते हैं।

मिरोसॉफ्ट इंस्टालर (एमएसआई) का उपयोग करें। यह करने के लिए सही बात है। इसके लिए अपना खुद का कस्टम फ्रंट-एंड बनाएं, लेकिन पहले से ही बहुत ही जटिल पहिया को फिर से न बनाएं।

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

क्या तुम सच में, ऐसा करने के लिए "पैकेजिंग" कहा जाता है की कोशिश कर रहे हैं और आप वास्तव में, निष्पादन योग्य पीई प्रारूप के साथ घनिष्ठ रूप से परिचित होने के लिए है, क्योंकि आप डिस्क पर पीई छवि की संरचना बदलने के बारे में बात कर रहे हैं।

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

यहां Self-Extractor ट्यूटोरियल का एक लिंक है, लेकिन यह सी # में नहीं है।

मुझे यह पता करने के लिए .NET पीई आवश्यकताओं के बारे में पर्याप्त जानकारी नहीं है कि आप इसे प्रबंधित कोड निष्पादन योग्य या नहीं कर सकते हैं या नहीं।

UPDATE2: यह शायद आप जो कुछ खोज रहे हैं उससे अधिक है, यह संसाधन में फ़ाइलों को एम्बेड करता है, लेकिन जैसा कि मैंने कहा, यह वास्तव में पेशेवर इंस्टॉलर या स्वयं निकालने वाले तरीके से ऐसा नहीं है। मुझे लगता है कि संसाधनों के रूप में आप जो एम्बेड कर सकते हैं उस पर विभिन्न सीमाएं हैं। लेकिन यहां सी # में लिखे गए Self-Extractor Demo की तरह है।

+1

मैं निश्चित रूप से अपने सभी लिखने से पहले सभी उपलब्ध इंस्टॉलरों का शोध करता हूं। यह वही है जो मैं "व्हील रीइनेंट द व्हील" के बारे में बात कर रहा था, जब तक आप पहियों के बारे में और अधिक सीखने की योजना नहीं बनाते "http://www.codinghorror.com/blog/archives/001145.html –

+0

एकमात्र कारण था कि मैं था , यह देखना था कि मैं कर सकता था या नहीं। मैं इसे सलाह या कुछ भी बनाने की कोशिश नहीं कर रहा हूं, बस 1 फॉर्म बनाने की कोशिश कर रहा हूं कि जब आप इंस्टॉल करें क्लिक करें और यह फ़ाइलों को निर्देशिका में रखता है। – S3THST4

+1

S3thst4, निश्चित रूप से उपलब्ध इंस्टॉलरों पर शोध करें, लेकिन ना-कहने वालों को आपको छोड़ने न दें, अधिकतर उपलब्ध इंस्टॉलर वांछित होने के लिए बहुत अधिक छोड़ देते हैं, खासकर एमएसआई, वहां निश्चित रूप से बड़े पैमाने पर सुधार के लिए जगह है, इंस्टॉलर में कोई चलना नहीं है पार्क हालांकि, कठिन भ्रष्टाचार के लिए तैयार रहें। –

0
मामले में

आप बस एक से अधिक फ़ाइलों संग्रहीत करना चाहते हैं:

ProjectNamespace.Properties.Resources.MyFile 

तो फिर तुम का उपयोग कर डिस्क के लिए एम्बेडेड संसाधन लिखने के लिए सक्षम हो जाएगा: आप तो फ़ाइल का उपयोग कर प्राप्त करने में सक्षम हो जाएगा एक फ़ाइल स्टोरेज में (और वहां से फ़ाइलों को निकालें, इंटरैक्ट इत्यादि) आप एनफाइलस्टोर, .net file storage को भी देखना चाहेंगे। सभी स्रोतों के साथ 100% .NET C# में लिखा गया है। यह एक कमांड लाइन दुभाषिया के साथ आता है जो कमांड लाइन से बातचीत की अनुमति देता है।

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