मुझे दी गई बाधाओं के तहत किसी भी सामान्य समाधान से अवगत नहीं है - विशेष रूप से स्रोत पेड़ से कई परियोजनाएं बनाना है।
सबसे अच्छा विकल्प मैं देख रहा हूँ वास्तव में कुछ स्क्रिप्ट के द्वारा प्रोजेक्ट फ़ाइलें पैदा कर रही है।
- एक परियोजना मैन्युअल बनाया जा रहा है (खाली परियोजना बनाने, तो फ़ाइलों को जोड़), संभव के रूप में यह रूप में करीब
- विन्यस्त के रूप में वांछित (यानी precompiled हेडर के साथ,, विन्यास का निर्माण आदि)
- उपयोग प्रोजेक्ट फाइलों के लिए कंकाल के रूप में बनाया गया .vcproj
"अजीब टोकन" के साथ एक बहुत ही सरल विधि सूची, प्रोजेक्ट नाम इत्यादि फाइल करेगा, और उन्हें आपके जेनरेटर के साथ भर देगा। यदि आप अच्छे लड़के बनना चाहते हैं, तो आप निश्चित रूप से कुछ एक्सएमएल हैंडलिंग लाइब्रेरी का उपयोग कर सकते हैं।
हमारा अनुभव: हम वास्तव में .vcproj और भंडार (Git) अब में .sln, लेकिन एक अजगर स्क्रिप्ट है कि स्रोत पेड़ से-genrates फिर उन्हें एक साथ वी.एस. 2008 के साथ एकत्र नहीं करते "संपत्ति शीट टेम्पलेट्स" (या जो भी उन्हें बुलाया जाता है)। यह सामान्य समायोजन करने में बहुत मदद करता है।
प्रोजेक्ट जनरेशन स्क्रिप्ट में सभी परियोजनाओं की विशेषताओं के बारे में जानकारी शामिल है (उदाहरण के लिए वे एमएफसी/एटीएल का उपयोग करते हैं, क्या यह डीएलएल या एक्सईई, फाइलों को बाहर करने के लिए बनाएगा)।
इसके अलावा, इस स्क्रिप्ट भी निर्भरता में शामिल है, जो वास्तविक निर्माण स्क्रिप्ट फ़ीड।
यह बहुत अच्छी तरह से काम करता है, समस्याएं मामूली हैं: बिल्ड सिस्टम में पाइथन का पुनर्गठन, प्रोजेक्ट फाइलों को दोबारा शुरू करने के लिए नहीं भूल रहा है, मुझे कुछ परियोजनाओं में समायोजन करने के लिए कुछ अजगर सीखना है।
@Michael बर "कैसे जटिल अजगर स्क्रिप्ट और जो कुछ भी समर्थन 'टेम्पलेट्स' आप की आवश्यकता हो सकती है?"
मैं ईमानदारी से, नहीं बता सकता क्योंकि मैं एक और देव (जो अजगर उठाया) के लिए काम दे दिया। मूल कार्य एक बिल्ड स्क्रिप्ट प्रदान करना था, क्योंकि वीएस -2008 समाधान निर्माण हमारी आवश्यकताओं के लिए पर्याप्त नहीं था, और पुरानी बैच फ़ाइल समानांतरता का समर्थन नहीं करती थी। .vcproj
पीढ़ी बाद में जोड़ा गया था। जैसा कि मैं समझता हूं कि उसकी स्क्रिप्ट स्क्रैच से .vcproj और .sln फ़ाइलों को उत्पन्न करती है, लेकिन अलग-अलग संपत्ति शीट से सभी सेटिंग्स में खींचती है।
सकारात्मक:
मक्खी पर नया विन्यास जोड़ा जा रहा है। कुछ परियोजनाओं में पहले से ही छह विन्यास थे, और यूनिकोड समर्थन के लिए योजना का मतलब था कि उन्हें थोड़ी देर के लिए दोगुना करने पर विचार करें। कुछ अजीब उपकरण अभी भी एमबीसीएस के रूप में बनाते हैं, इसलिए कुछ libs में अब 8 कॉन्फ़िगरेशन हैं। यह सुनिश्चित करना कि हाथ से दर्द होता है, अब यह मुझे अब परेशान नहीं करता है।
वैश्विक परिवर्तन, उदा। रिश्तेदार परियोजना रास्तों इधर-उधर जाने, अस्थायी फ़ाइलों के लिए और अंतिम binaries के लिए फ़ोल्डर जब तक हम एक समाधान
स्थिरता बिल्ड के साथ हम खुश थे पाया। वीसी 6 प्रोजेक्ट फाइलों को विलय करना विभिन्न कारणों से त्रुटियों का एक उल्लेखनीय स्रोत था, और वीसी 9 प्रोजेक्ट फाइलें बेहतर दिखाई नहीं दे रही थीं। अब चीजें अलग दिखती हैं: संपत्ति शीट में संकलित/लिंक सेटिंग्स, स्क्रिप्ट में फ़ाइल हैंडलिंग। साथ ही, स्क्रिप्ट में हमारे डिफ़ॉल्ट से अधिकतर भिन्नताएं सूचीबद्ध होती हैं, जो किसी प्रोजेक्ट फ़ाइल से पढ़ने के लिए आसान होती हैं।
आम तौर पर: मैं नहीं एक बड़ा लाभ बल्कि वे स्थिर रहे हैं देख पा रहे हैं जब अपनी परियोजनाओं को पहले से ही स्थापित कर रहे हैं, और आप वास्तविक मुद्दों की जरूरत नहीं है। हालांकि, अज्ञात (हमारे लिए: अधिकतर वीसी 6 -> वीसी 9 और यूनिकोड बनाता है) में जाने पर, लचीलापन ने प्रयोगों के जोखिम को बहुत कम कर दिया।
यह मेरे लिए काफी दिलचस्प लगता है। पाइथन स्क्रिप्ट्स और जो भी 'टेम्पलेट्स' का समर्थन कर रहे हैं, आपको कितनी जटिल आवश्यकता हो सकती है? –