क्या आपके प्रोजेक्ट के बिल्ड आउटपुट पथ को "bin \ debug" के डिफ़ॉल्ट से संशोधित करने के कोई अच्छे कारण हैं? क्या आपके सभी परियोजनाओं को एक सामान्य निर्माण आउटपुट स्थान के समाधान के भीतर इंगित करने का कोई लाभ है?विजुअल स्टूडियो के डिफ़ॉल्ट बिल्ड आउटपुट पथ को बदलना
उत्तर
हां, मैं आमतौर पर यह हर समय करता हूं। जैसा हैरी ने कहा, यह डिस्क स्पेस उपयोग को कम कर देता है। यह वास्तव में मेरे लिए एक बड़ा सौदा नहीं है, क्योंकि डिस्क स्थान अविश्वसनीय रूप से सस्ता है, लेकिन यह आपके लिए चिंता का विषय हो सकता है। असली कारण यह है कि मैं इसे बेहतर दर्पण के लिए करता हूं कि तैनाती कैसा दिखता है। ऐसा करने का सबसे अच्छा तरीका property sheet है जो आउटपुट निर्देशिका को $(SolutionDir)/build/bin
में संशोधित करता है। इसके बाद, मैंने कार्यशील निर्देशिका को $(SolutionDir)/build
पर सेट किया, जो कि पूरी संरचना है जो इसे विभिन्न परियोजना निर्देशिकाओं में फैलाने के बजाए तैनात किया जाएगा, समान है।
build
|-- bin
| |-- foo.exe
| |-- libfoo.dll
| `-- libbar.dll
|-- plugins
| |-- extender.py
| `-- something.lua
`-- skins
|-- default.skin
`-- white-and-gold.skin
कुल मिलाकर, चीजें हैं जो निर्माण कर रहे हैं (बल्कि स्रोतों की तुलना में) के लिए एक अलग निर्देशिका होने एक अच्छी बात है। यह कस्टम बिल्ड चरणों को लिखना आसान बनाता है, क्योंकि आप जानते हैं कि अंतिम आउटपुट कहां होगा और आपके संस्करण नियंत्रण प्रणाली के साथ एकीकरण को आसान बनाता है, क्योंकि आप इसे ignore
पर , , के लिए सेट करने के बजाय इसे पूरी निर्देशिका को अनदेखा करने के लिए सेट कर सकते हैं। , .dll
और हर छोटी निर्देशिका के लिए जो भी हो।
मेरी आउटपुट निर्देशिका को बदलने का प्राथमिक कारण डुप्लिकेट असेंबली की संख्या और फ़ाइल प्रतियों की संख्या को कम करना है विजुअल स्टूडियो को बनाना है। यदि प्रोजेक्ट ए रेफरेंस प्रोजेक्ट बी, और प्रोजेक्ट सी संदर्भ परियोजना ए और बी है तो स्टूडियो को ए बनाना है, ए को कॉपी करना है और बी बनाना है, फिर ए और बी को सी में कॉपी करें और सी बनाएं। अब आपके पास असेंबली ए की 3 प्रतियां हैं, असेंबली बी की दो प्रतियां, और सी में से एक। आउटपुट को एक निर्देशिका में इंगित करते हुए, विजुअल स्टूडियो बस ए बनाता है, फिर बी, फिर सी। प्रत्येक की एक प्रति। आप कल्पना कर सकते हैं कि निर्माण के लिए कितनी अधिक डिस्क स्पेस और समय का उपभोग किया जाता है क्योंकि परियोजनाओं की संख्या और निर्भरता की जटिलता बढ़ती है।
उदाहरण के तौर पर मेरे पास एक updater.exe है जिसे "अन्य" प्रोग्राम के साथ वितरित किया जाना चाहिए। इसलिए मैंने "अन्य" कार्यक्रमों को पथ बनाने के लिए पथ बनाया है। इस तरह से मुझे पता है कि मैं हमेशा के लिए नवीनतम "updater.exe" है जहां यह होना चाहिए।
केवल एक कारण है।
बस एक नोट के रूप में, मेरा वास्तविक बिंदु उस समय के बारे में अधिक था जब विजुअल स्टूडियो जटिल निर्भरताओं के साथ एक ही फाइलों की प्रतिलिपि बनाने के लिए ले रहा था - डिस्क स्थान की मात्रा सहायक थी। लेकिन मुझे लगता है कि जिस तरह से मैंने अपना जवाब सुनाया, वह प्रत्येक के बराबर वजन देता था। –