2012-09-24 14 views
5

मैं विजुअल स्टूडियो 2012 एक्सप्रेस में मेकफ़ाइल प्रोजेक्ट का उपयोग कर रहा हूं बस ठीक है। हालांकि, बिल्ड कमांड निर्दिष्ट किए बिना, विजुअल स्टूडियो हमेशा 'subjolders obj \ Win32 \ Debug और obj \ Win32 \ रिलीज़ वाले' obj 'फ़ोल्डर बनाता है।विजुअल स्टूडियो मेकफ़ाइल प्रोजेक्ट बाहरी 'obj' फ़ोल्डर बनाता है

समस्या को पुन: उत्पन्न करने के लिए, बस "विजुअल सी ++ - जनरल - मेकफ़ाइल प्रोजेक्ट" बनाएं और बिल्ड कमांड लाइन में 'डीआईआर' जैसे डॉस कमांड का उपयोग करें। जैसे ही आप निर्माण करते हैं, खाली obj \ Win32 \ Debug फ़ोल्डर दिखाई देगा।

मैं बस इन्हें मेरी Mercurial ignore फ़ाइल में छोड़ सकता हूं लेकिन यह एक फिक्स ढूंढना अच्छा लगेगा। कोई भी जानता है कि विजुअल स्टूडियो को इन खाली फ़ोल्डरों को कैसे उत्पन्न नहीं किया जाए?

+0

http://stackoverflow.com/questions/15620224/move-obj-folder-in-visual-studio-2012 –

उत्तर

1

obj फ़ोल्डर इंटेलिजेंस समर्थन और डिजाइनर समर्थन (डब्ल्यूएफ/डब्ल्यूपीएफ ऐप्स के लिए) के लिए आपके प्रोजेक्ट के बारे में वीएस के मेटाडेटा का प्रतिनिधित्व करता है। अधिकांश भाग के लिए आप बिना किसी समस्या के फ़ोल्डर को अनदेखा कर सकते हैं।

अवसर पर हालांकि यह डेटा दूषित हो सकता है और वीएस को अमान्य इंटेलिजेंस विकल्प दिखाने और वर्कफ़्लो/डब्ल्यूपीएफ डिजाइनर त्रुटियों का कारण बन सकता है। बंद वीएस और obj फ़ोल्डर को हटाने से यह जल्दी से हल हो जाएगा।

+0

प्रतिक्रिया के लिए धन्यवाद। लेकिन एक मेकफ़ाइल प्रोजेक्ट के इस मामले में जो बाहरी निर्माण उपकरण का उपयोग करता है, यह obj फ़ोल्डर हमेशा खाली होता है। क्या इसे इंटरमीडिएट निर्देशिका में रीडायरेक्ट करने का कोई तरीका है? $ (IntDir)। – chopin952

+0

दुर्भाग्य से नहीं, वीएस में इस व्यवहार को नियंत्रित करने का कोई तरीका नहीं है। यह व्यावहारिक रूप से हर परियोजना प्रकार में भी होता है, इसलिए यह वीसी ++ ऐप्स तक ही सीमित नहीं है। – ajawad987

+0

एक अलग दृष्टिकोण की विचार जिसे आप पूरी तरह से स्वच्छ निर्देशिका में अपना निर्माण करने के लिए ले सकते हैं। डिफ़ॉल्ट रूप से बिल्ड या तो बिन/$ (कॉन्फ़िगरेशन) पर जाएंगे लेकिन आप इसे कहीं भी निर्देशित कर सकते हैं। हो सकता है कि आपके प्रोजेक्ट स्पेस के बाहर कहीं भी निर्देशित आउटपुट एक सभ्य दृष्टिकोण होगा? – ajawad987

2

एक चाल मिली: मौजूदा निर्देशिका पर इंटरमीडिएट आउटपुट निर्देशिका सेट करने के लिए। मैंने प्रोजेक्ट फ़ाइल को हाथ से संशोधित किया और इसे जोड़ा:

<IntermediateOutputPath>$(ProjectDir)</IntermediateOutputPath> 

कॉन्फ़िगरेशन प्रॉपर्टी ग्रुप के अंदर। मैंने प्रोजेक्ट निर्देशिका का उपयोग किया, जो स्पष्ट रूप से पहले से मौजूद है। कोई और बेकार obj निर्देशिका नहीं!

+0

यह मेरे लिए वीएस2015 पर काम करता है। –

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