2010-11-05 18 views
9

मेरे पास मेरे एप्लिकेशन के लिए एक सेटअप/परिनियोजन प्रोजेक्ट है और यह एप्लिकेशन फ़ोल्डर में कुछ फ़ाइलों (* .dll, * .dat) को आउटपुट करता है।फ़ाइल स्टूडियो सेटअप प्रोजेक्ट सशर्त अगर फ़ाइल मौजूद है

मैं एक शर्त को सेट करना चाहता हूं कि यह जांचने के लिए कि कोई फ़ाइल वर्तमान में मौजूद है या नहीं। यदि ऐसा नहीं होता है, तो इसे लिखें लेकिन यदि ऐसा होता है, तो इसे पैकेज से इंस्टॉल न करें। क्या यह संभव है?

फ़ाइल को "डेटाबेस.dat" कहा जाता है और गुणों के तहत, मुझे एक "हालत" विशेषता दिखाई देती है, लेकिन मुझे वहां से क्या परिचित होना चाहिए उससे परिचित नहीं हूं।

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

संपादित करें:

कारण क्यों यह अस्तित्व में पहले से ही हैं पिछले एक से स्थापित है कि एक डेटासेट/डेटा तालिका जो हम ऊपर लिख नहीं करना चाहते से डेटा वहाँ होगा।

उत्तर

23

केवल एक फ़ाइल को स्थापित करने के लिए, यदि वह पहले से मौजूद नहीं है, तो निम्न चरणों का पालन करें:

  1. अपने सेटअप परियोजना में "लॉन्च शर्तें" व्यू के नीचे एक "खोज लक्ष्य मशीन" प्रविष्टि जोड़ें।

  2. FileName संपत्ति और Folder संपत्ति भरें।

  3. Property संपत्ति एक निरंतर आप याद कर सकते हैं, जैसे "MY_AWESOME_FILE_EXISTS"
  4. अपनी परियोजना के "फाइल सिस्टम" दृश्य में
  5. , "not MY_AWESOME_FILE_EXISTS"
  6. स्थापित करने और Condition संपत्ति में जोड़ने के लिए घटक का पता लगाने होना चाहिए

यह सब कुछ है।

सूत्रों का कहना है (के बाद से मैं सिर्फ खुद के लिए यह पता लगाने की थी):

+0

आप एक सुंदर व्यक्ति हैं। इसके लिए धन्यवाद, मेरे सबसे करीबी दोस्त। –

+0

@ACK_stoverflow, बस अपना दिन बनाने के लिए धन्यवाद :) यह आज मैंने पढ़ा इंटरनेट का पहला टुकड़ा है। मैं अभी बड़ा समय मुस्कुरा रहा हूँ! –

+0

किसी भी समय, बब;) –

0

हालत-विशेषता में केवल वही है जो आपको चाहिए: मौजूद-शर्त। सरलीकृत उदाहरण है:

<Copy Condition="!Exists($(DestPath)database.dat)" 
     SourceFiles="$(SrcPath)database.dat" 
     DestinationFolder="$(DestPath)"/> 

this topic भी देखें।

+1

विजुअल स्टूडियो सेटअप प्रोजेक्ट में फ़ाइल की हालत संपत्ति में यह कैसा दिखाई देगा? – CyberMonk

0

सेटअप परियोजना पर, दाएं उस फ़ाइल पर क्लिक करें जिसे आप इंस्टॉलेशन फ़ोल्डर पर रखना चाहते हैं, प्रॉप का चयन करें rties और स्थायी करने के लिए स्थायी सेट।

+0

यह समस्या का समाधान नहीं करता है। यदि आप स्थायी और अनइंस्टॉल करते हैं, तो फ़ाइल को बदलें और फिर इंस्टॉल करें, इसे ओवरराइट किया जाएगा। – Guge

0

आपको वास्तव में क्या होता है यह देखने के लिए डेटा फ़ाइल को एक परीक्षण के रूप में स्थापित करना चाहिए। कारण मैं यह कहता हूं कि विंडोज इंस्टालर उन फ़ाइलों को ओवरराइट नहीं करेगा जो पहले स्थापित किए जाने के बाद बदल दिए गए हैं।

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx

मुझे ऐसा लगता है कि आप कुछ भी नहीं करने के लिए आवश्यकता हो सकती है: इस नियम देखें।

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