2009-04-03 12 views
5

हर बार जब माइक्रोसॉफ्ट विजुअल स्टूडियो का एक नया संस्करण जारी करता है, तो उन्हें हमेशा मुझे अपने समाधान और प्रोजेक्ट फाइलों को 'नवीनतम संस्करण' में बदलने की आवश्यकता होती है। "हैलो वर्ल्ड" समाधान के रूप में कुछ भी सरल के साथ, मुझे उनके रूपांतरण विज़ार्ड से गुज़रना होगा!ओपन सोर्स विजुअल स्टूडियो प्रोजेक्ट डिस्ट्रीब्यूशन ड्रीममेयर

और, चीजों को और खराब करने के लिए, नई विज़ुअल स्टूडियो समाधान फ़ाइलें विजुअल स्टूडियो के पुराने संस्करणों के अनुकूल नहीं हैं।

लोगों के समूह के साथ काम करने वाले किसी के लिए क्या दुःस्वप्न है ... या कोई भी अपनी परियोजनाओं के लिए स्रोत कोड वितरित करने की उम्मीद कर रहा है।

क्या दृश्य स्टूडियो प्रोजेक्ट वितरित करने का कोई अच्छा तरीका है, और लोगों को अभी भी इसका उपयोग करने के लिए दृश्य स्टूडियो के पुराने संस्करणों का उपयोग करने की अनुमति है? यह एक साधारण सी प्रोग्राम है, किसी भी निफ्टी विकल्पों का उपयोग नहीं कर रहा है। मेरे पास केवल विजुअल स्टूडियो 2008 तक पहुंच है, और विजुअल स्टूडियो कोई पिछड़ा 'रूपांतरण' विज़ार्ड प्रदान नहीं करता है। प्रोग्राम बनाने के लिए एनएमके + मेकफ़ाइल का उपयोग करके स्रोत कोड को रिलीज़ करना समझदारी होगी? ऐसा लगता है कि कुछ समय में एनएमके फ़ाइल प्रारूप में काफी बदलाव नहीं आया है, और एक मेकफ़ाइल प्रदान करना संभव होगा जो विजुअल स्टूडियो के संस्करणों की एक विस्तृत श्रृंखला के साथ काम करता है।

उत्तर

2

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

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

मैं पार्क के चारों ओर जाने के बजाय मेक/जीसीसी का उपयोग करता हूं।

+0

हाँ, मुझे लगता है कि मैं सिर्फ स्रोत कोड और मेकफ़ाइल जारी करूंगा, क्योंकि इसकी गारंटी देना बहुत मुश्किल है 1) वीएस का सही संस्करण उपयोग किया जा रहा है और 2) उनके पास वीएस है। इसके अलावा, वास्तविक कंपाइलर मुफ्त है, और एनएमके उपकरण भी है। –

0

मुझे लगता है कि एनएमके का उपयोग करने का तरीका है - दुर्भाग्य से वीसी 6 अंतिम संस्करण है जो स्वचालित रूप से प्रोजेक्ट के आधार पर आपके लिए एक बना देगा।

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

5

आप अपने प्रोजेक्ट के लिए बिल्ड टूल के रूप में CMake का उपयोग कर सकते हैं। यह आपके लिए वीएस प्रोजेक्ट फाइल जेनरेट करेगा, और आप सिर्फ फाइल खोल सकते हैं और प्रोजेक्ट बनाने के लिए इसका इस्तेमाल कर सकते हैं। रूपांतरण की समस्या कोई फर्क नहीं पड़ता, क्योंकि आप इसे फिर से बनाने के लिए सीएमके का उपयोग कर सकते हैं।

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

9

ऐसा करने का सामान्य तरीका समाधान की एक उप निर्देशिका में बनाम प्रोजेक्ट फ़ाइलों को रखना है।उदाहरण के लिए

solution 
- build 
-- vc6 
-- vc7 
-- vc8 
-project1 
-- src 
-- build 
--- vc6 
--- vc7 
--- vc8 
-project2 
-- src 
-- build 
--- vc6 
--- vc7 
--- vc8 

फिर जब आप बनाम का एक नया संस्करण प्राप्त - पिछले परियोजना निर्देशिका जैसे vc7 कॉपी vc8 के लिए - समाधान के लिए भी ऐसा ही है - एक पाठ संपादक में समाधान और परियोजना फ़ाइलों को खोलने के ठीक करने के लिए किसी भी पथ - अंत में बनाम के नए संस्करण में समाधान खोल सकते हैं और यह अपनी परियोजनाओं को परिवर्तित करते हैं - (स्रोत नियंत्रण का प्रयोग करें, जैसे कि आपके एक या रास्तों यह एक पुरानी निर्देशिका में एक परियोजना को अद्यतन गलत हैं)

यह थकाऊ है लेकिन आपको केवल हर कुछ वर्षों में ऐसा करना है।

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

अब मैं सभी सी ++ परियोजनाओं के लिए सीएमके का उपयोग करता हूं चाहे मुझे इसकी बहु प्लेटफार्म क्षमताओं की आवश्यकता हो या नहीं।

0

मैं सुझाव देता हूं कि आप ओपन सोर्स प्रक्रिया का उपयोग करें। वीएस 2008 के रूप में अपना कोड जारी करें, और उन संस्करणों के लिए समाधान फ़ाइल का योगदान करने के लिए पहले संस्करणों का उपयोग करने वाले किसी व्यक्ति को अनुमति दें। यह खुला स्रोत तरीका है।

0

एक समाधान जिसे मैंने वाणिज्यिक विंडोज पुस्तकालयों द्वारा उपयोग किया है, वीएस संस्करण के साथ एक प्रत्यय के रूप में समाधान फ़ाइलों का नामकरण कर रहा है (उदाहरण: Project_VS2005.sln, Project_VS2008.sln, आदि)। आपको अभी भी उन्हें सिंक में रखना होगा, लेकिन आपको फ़ाइल पथों को बदलने या निर्देशिकाओं को शामिल करने, या वास्तविक समाधान फ़ाइलों को संशोधित करने की आवश्यकता नहीं है; केवल एक ही वीएस संस्करण के लिए एकाधिक फाइलें रखें, जो समर्थित है। आपको प्रोजेक्ट फ़ाइलों के लिए एक ही चीज़ करना है, लेकिन कम से कम आपको विभिन्न निर्देशिका संरचनाओं का समर्थन करने के लिए चारों ओर सामग्री को बदलने की ज़रूरत नहीं है जबतक कि आप कई वीएस संस्करणों के साथ-साथ बिल्डिंग का समर्थन करना नहीं चाहते हैं, और मामले में जहां आप केवल प्रत्येक अलग परियोजना फ़ाइल के लिए आउटपुट सेटिंग्स को बदलना चाहते हैं।

यह नहीं कह रहा कि यह एक अच्छा समाधान है, बल्कि एक और विकल्प है।

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