2013-11-14 10 views
8

का उपयोग कर अपने एक्सई फ़ाइल में फ़ोल्डर को कैसे शामिल करें I वर्तमान में विंडोज के लिए इंस्टॉलर बनाने के लिए इनो सेटअप कंपाइलर का उपयोग कर रहा हूं और जब मैं एक्सई में फ़ोल्डर को शामिल करने का प्रयास करता हूं तो सब कुछ ठीक काम कर रहा है। दूसरे शब्दों में जो मैं चाहता हूं वह उसमें दो फाइलों के साथ एक फ़ोल्डर शामिल करने में सक्षम होना है, मैं चाहता हूं कि यह फ़ोल्डर सही दिखाई दे, जहां प्रोग्राम स्थापित होने पर .exe फ़ाइल (सी: \ प्रोग्राम फ़ाइलें x86 \ appFolder) है।इनो सेटअप कंपाइलर

इनो के पास फ़ोल्डर जोड़ने का विकल्प है, लेकिन किसी कारण से जब मैं दो फाइलों के साथ फ़ोल्डर का चयन करता हूं, तो यह ठीक से संकलित होता है लेकिन जब मैं वास्तव में प्रोग्राम स्थापित करता हूं तो यह वास्तव में दो फाइलें जोड़ता है लेकिन फ़ोल्डर नहीं।

मुझे ऑनलाइन कोड की निम्न पंक्ति मिली और मैंने इसका इस्तेमाल किया लेकिन वास्तव में इसमें कुछ फ़ोल्डर्स शामिल थे जिन्हें मैं नहीं चाहता था। कोड की इस पंक्ति के साथ मेरी समस्या यह है कि मैं इसे पूरी तरह से समझ नहीं पा रहा हूं, मुझे नहीं पता कि फ़ोल्डर पथ कहां होना चाहिए? Exlude क्या है: "Setup.iss, generated_images \" एक कोड की इस पंक्ति की व्याख्या

Source: "*.*"; Excludes: "Setup.iss,generated_images\*"; DestDir: "{app}"; Flags:replacesameversion recursesubdirs 

कोई बहुत दयालु हो सकता है?

धन्यवाद

+1

इसमें 'Setup.iss' फ़ाइल को छोड़कर स्क्रिप्ट के स्थान से सभी उपनिर्देशिकाओं (' recursesubdirs') से सभी फ़ाइलों ('*। *') को शामिल किया जाना चाहिए और 'जेनर_मेज' सबफ़ोल्डर से सभी फाइलें शामिल होनी चाहिए। – TLama

+0

मैं अपनी स्क्रिप्ट को एक अलग फ़ोल्डर में संग्रहीत करता हूं, इसलिए यदि मैं एक पूर्ण पथ जोड़ता हूं और बहिष्कृत कथन से छुटकारा पाता हूं, तो सही? * स्रोत: "* C: \ Users \ उपयोगकर्ता नाम \ दस्तावेज़ *"; DestDir: "{app}"; ध्वज: replacesameversion recursesubdirs –

+1

निश्चित रूप से, 'बहिष्कृत' पैरामीटर बस बाहर करने के लिए है। यदि आप 'स्रोत' निर्देशिका से कुछ भी बाहर नहीं करना चाहते हैं (जो निश्चित रूप से पूर्ण या सापेक्ष पथ हो सकता है, लेकिन केवल उस पथ पर नहीं जहां स्क्रिप्ट संग्रहित है), इसका उपयोग न करें। – TLama

उत्तर

16

अपनी टिप्पणी से (आप आश्रय के रूप में टी वास्तव में सभी कोड के बारे में आप बात कर रहे हैं दिखाया गया है), मुझे लगता है कि आप की तरह कुछ कर रहे हैं:

[Files] 
Source: "blah.exe"; DestDir: "{app}"; Flags:replacesameversion 
Source: "subfolder\*.*"; DestDir: "{app}"; Flags:replacesameversion 

इस मामले में, यह subfolder से {app} की सामग्री की प्रतिलिपि बना रहा है।

आप इसे कॉपी और उप निर्देशिका रखने के लिए चाहते हैं, निर्देशिका ही निर्दिष्ट करें:

[Files] 
Source: "blah.exe"; DestDir: "{app}"; Flags: replacesameversion 
Source: "subfolder"; DestDir: "{app}"; Flags: replacesameversion recursesubdirs 

या एक स्पष्ट गंतव्य निर्देशिका निर्दिष्ट करें:

[Files] 
Source: "blah.exe"; DestDir: "{app}"; Flags:replacesameversion 
Source: "subfolder\*.*"; DestDir: "{app}\subfolder"; Flags:replacesameversion 
3

मैं एक ऐसी ही समस्या हो रही थी:

मेरे पास यह फ़ोल्डर अन्य चीजों के बीच है:

  • \ WorkFolder \ MyEmptyFolder \

मैं स्थापित सिस्टम पर चाहते हैं तो इस:।।।

  • \ PathToExe \ Name.exe
  • \ PathToExe \ MyEmptyFolder \

यदि फ़ोल्डर खाली नहीं है तो यह काम करता है, लेकिन कभी-कभी मुझे खाली फ़ोल्डर की आवश्यकता होती है।

  • तो फ़ोल्डर रिक्त है, तो पर:

    Source: .\WorkFolder\MyEmptyFolder\*; DestDir: {app}\MyEmptyFolder; Flags: ignoreversion recursesubdirs createallsubdirs 
    

    क्या मैं स्क्रिप्ट क्या करना चाहते हैं (करने के लिए स्क्रिप्ट हर बार फिर से लिखें आवश्यकता के बिना) है:

    मैं इस लाइन का उपयोग कर रहा स्थापित किया गया फ़ोल्डर खाली होगा लेकिन

  • यदि फ़ोल्डर में फ़ाइलें और/या सबफ़ोल्डर हैं, तो स्थापित होने पर फ़ोल्डर मौजूद होगा और उस सामग्री को

मेरी समस्या तब खाली है जब यह खाली है, स्क्रिप्ट एक त्रुटि के साथ समाप्त होती है जिसमें कहा गया है कि इसमें कोई फाइल नहीं है। यह समझ में नहीं आता कि मैं उस फ़ोल्डर को चाहता हूं और उस समय क्या हो सकता है।

विचारों के लिए धन्यवाद, मैं उन्हें कोशिश करते हैं और समाधान मिल गया है, यहाँ यह है:

सबसे पहले यह सुनिश्चित फ़ोल्डर बनाया जाएगा (यदि फ़ाइलें खंड के साथ कोई फ़ाइलें है यह यह पैदा नहीं करता):

[Dirs] 
Name: {app}\; Permissions: users-modify 
Name: {group}\; Permissions: users-modify 
Name: {app}\MyEmptyFolder\; Permissions: users-modify 

अगला संपादित फ़ाइलें खंड पर लाइन "skipifsourcedoesntexist" शामिल करने के लिए:

Source: .\WorkFolder\MyEmptyFolder\*; DestDir: {app}\MyEmptyFolder; Flags: ignoreversion recursesubdirs createallsubdirs skipifsourcedoesntexist 

और यह मैं क्या चाहते हैं करता है: इस तरह के फ़ोल्डर को शामिल करें और यह सब क्या हो रहा है, कोई फर्क नहीं पड़ता अगर फ़ोल्डर उन्हें है पीटीआई या नहीं, यदि रिक्त है तो स्क्रिप्ट किसी त्रुटि के साथ समाप्त नहीं होगी।

यह कैसे काम करता है?

आसान चाल: यदि फ़ोल्डर खाली है, तो फ़ाइल अनुभाग खाली हो जाएगा और स्क्रिप्ट एक त्रुटि के साथ समाप्त हो जाएगी, लेकिन skipifsourcedoesntexist के साथ यह इससे बचें, लेकिन इससे ऐसा फ़ोल्डर मौजूद नहीं होगा, यही कारण है कि मैं ऐसे फ़ोल्डर को जोड़ता हूं Dirs अनुभाग पर, यह सुनिश्चित करने के लिए कि यह हमेशा बनाया गया है।

आशा है कि इससे अन्य पागल न होने में मदद मिलेगी!

+0

skipifsourcedoesntexist कीवर्ड मेरे लिए काम किया। धन्यवाद – Vijayaraghavan

0

सेटअप फ़ाइल इनो सेटअप बनाते समय .... नए फ़ोल्डर पर क्लिक करें, यूआरएल पर क्लिक करें, फिर संपादन पर क्लिक करें और सबफ़ोल्डर नाम दें जिसे आप संस्थापन फ़ोल्डर में शामिल करना चाहते हैं।