2012-11-02 16 views
6

मैं एक VS2010 परियोजना जो एक dataIn बनाने के लिए की जरूरत है और बिन \ डिबग निर्देशिका में dataOut निर्देशिका कुछ परीक्षण चलाने के लिए अनुमति देने के लिए किया है।विजुअल स्टूडियो 2010 में निर्माण पर खाली फ़ोल्डर कैसे बनाएं?

डेटा बनाना निर्देशिका में आसान है - बस प्रोजेक्ट में सामग्री के साथ फ़ोल्डर जोड़ें और "हमेशा कॉपी करें" में शामिल प्रत्येक फाइल के लिए "आउटपुट निर्देशिका कॉपी करें" संपत्ति सेट करें (या प्रोजेक्ट को संपादित करें एसओ पर अन्य उत्तरों द्वारा सुझाए गए सभी फ़ाइलों को पकड़ने के लिए वाइल्डकार्ड का उपयोग करने के लिए फ़ाइल) - निर्देशिका स्वचालित रूप से वीएस द्वारा बनाई जाएगी ताकि फाइलों में इसकी प्रतिलिपि बनाई जा सके।

मेरा प्रश्न : मैं जब जरूरत कैसे सुनिश्चित कर सकते dataOut निर्देशिका आप बन जाता है?

इसमें कोई फाइल नहीं है, इसलिए आइटम समूह में इस निर्देशिका के लिए कुछ भी नहीं है।

"<path>\dataOut" is actually a directory. The "Copy" task does not support copying directories. 

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

उत्तर

4

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

मैं अभी भी वहाँ एक बेहतर विकल्प है, हालांकि अगर जानना चाहते हैं ...

0

कैसे prebuild कदम में कुछ mkdirs के बारे में?

+0

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

+0

मैं एपीआई हेडर की प्रतिलिपि बनाने के लिए बिल्ड पोस्ट करने के लिए उपयोग करता हूं एक आम निर्देशिका में शामिल हैं। – EvilTeach

0

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

if(!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "yourDirectoryName")) 
{ 
    Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "yourDirectoryName"); 
} 

मुझे यकीन है कि आवेदन की किस प्रकार आप के साथ काम कर रहे हैं नहीं कर रहा हूँ, लेकिन WinForm क्षुधा उनके मुख्य विधि में ऐसा कर सकते हैं, और वेब अनुप्रयोग स्थानों की संख्या में ऐसा कर सकता है।

+0

डेटाऑट निर्देशिका केवल विकास पर्यावरण में कुछ परीक्षण चलाने की आवश्यकता है। ग्राहक प्रणाली पर इसे बनाने के लिए स्पष्ट कोड जोड़ना जिसे कभी इसकी आवश्यकता नहीं होगी, जाने का रास्ता नहीं है! –

8

पूर्व निर्माण चरण में इस प्रयास करें: यदि आप $(TargetDir) में कहीं रिक्त स्थान है

if not exist "$(TargetDir)dataOut" mkdir "$(TargetDir)dataOut" 

उद्धरण महत्वपूर्ण हैं, लेकिन मैं उन्हें परवाह किए बिना मजबूती के लिए उपयोग करेंगे।

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