13

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

संपादित करें: मुझे परियोजना फ़ाइलों को चेक-इन पर "विलय" करने या स्क्रिप्ट या टूल के साथ समय बनाने का सुझाव दिया गया है। दुर्भाग्यवश, वीसी ++ प्रोजेक्ट फ़ाइल प्रारूप VS2008 से VS2010 में बदल गया है और इसमें कुछ भी सामान्य नहीं है। तो मेरा प्रश्न अधिक है: क्या कोई उपकरण है जो वीसी 9 और वीसी 10 प्रोजेक्ट फाइलों के बीच विलय/कनवर्ट करने में सक्षम है? यदि मैं इसे संबोधित करने का कोई अन्य तरीका नहीं हूं तो मैं अपना स्वयं का टूल लिख सकता हूं।

उत्तर

6

मेरी कंपनी में हमारे पास बिल्कुल वही समस्या थी और CMake का उपयोग करना चुना।

कम से कम अपनी परियोजनाओं में से किसी एक पर प्रयास करें, यह आपकी समस्या का आदर्श समाधान है।

यह टेक्स्ट फ़ाइलों में एक सरल वाक्यविन्यास के साथ हमारी परियोजनाओं का वर्णन करने की अनुमति देता है और फिर सीएमके उसी फाइल से वीएस2005, वीएस -2008 और वीएस -2010 परियोजनाएं उत्पन्न करता है।
इस तरह केवल सीएमके फाइलों को संशोधित किया जाता है और सभी परियोजनाओं को एक ही समय में अपडेट किया जाता है।

कम CMake में है:
1. स्वच्छ
2. वर्णनात्मक
3. देशी
4. सुरक्षित

क्योंकि:
1. सभी विकल्प और विन्यास में पढ़ा जा सकता है फाइलें, कई गुण पैनलों में नहीं।
2. सीएमके व्याकरण और वाक्यविन्यास पढ़ने में आसान है।
3. सभी जेनरेट की गई परियोजनाएं सीएमके से पूर्ण और स्वतंत्र हैं।
4. आप सीएमके फाइलों पर एक स्रोत नियंत्रण प्रबंधक का उपयोग कर सकते हैं।

हमारे पास 50 परियोजनाओं या 20 परियोजनाओं के कुछ समाधान थे और यह बहुत काम था, और सीएमके का इस्तेमाल करने के कारणों में से एक कारण था क्योंकि हमें कुछ पुस्तकालयों पर मैक पर एक्सकोड के साथ काम करने की आवश्यकता थी, जो परियोजनाएं वीएस के लिए आम हैं और एक्सकोड।
लेकिन यह केवल वीएस के विभिन्न संस्करणों के लिए भी इसके लायक होगा।

+0

यह वास्तव में मेरे पास है के लिए बस गए। धन्यवाद। – KeatsPeeks

1

आप केवल उन समाधान/परियोजना फ़ाइलों को अलग-अलग बनाए रख सकते हैं। अगर आप अपना ऐड-ऑन लिखेंगे तो कृपया मुझे बताएं!

2

स्रोत नियंत्रण यहां सहायता करता है। मैंने इसे पिछले संस्करणों के साथ एक अपग्रेड (वीएस -2010) शाखा बनाकर और ट्रंक (वीएस -2008) के बीच आगे और पीछे विलय करके किया है। निश्चित रूप से निर्बाध नहीं है, यह काम करता है।

मुझे नहीं पता कि वीएस -2010 में परियोजना में बदलाव से पहले यह बेहतर या बदतर हो जाएगा!

+0

यह प्रोजेक्ट स्रोत टीएफएस के साथ नियंत्रित है, इसलिए मुझे इसमें बहुत रूचि है। लेकिन मुझे समझ में नहीं आता कि मैं .vcproj (2008) प्रोजेक्ट और एक .vcxproj (VC++ 2010) के बीच परिवर्तन कैसे विलय कर सकता हूं। मैं उसे कैसे प्राप्त कर सकता हूं ? – KeatsPeeks

+0

आप दोनों के बीच परिवर्तनों को उसी तरह मर्ज करेंगे जैसे आप टीएफएस के तहत किसी अन्य फाइल के लिए करेंगे। – GraemeF

1

मेरे पास 2010 में काम पर स्थापित नहीं है इसलिए मैं यहां ज्यादातर स्मृति से जा रहा हूं। 2005 से 2008 से 2010 तक प्रोजेक्ट फ़ाइल स्कीमा में बहुत कम बदलाव आया है। अधिकांश भाग के लिए मैं आसानी से बदलावों को हाइलाइट करने के लिए WinDiff या BeyondCompare जैसे टेक्स्ट तुलना टूल का उपयोग करता हूं और उन्हें एक फ़ाइल से दूसरी फ़ाइल में कॉपी करता हूं। मैंने किसी भी वेब प्रोजेक्ट प्रकार के साथ नहीं खेला है, लेकिन मुझे लगता है कि अधिकांश भाग एक ही तकनीक काम करेगा। चूंकि उनकी मूल रूप से एक्सएमएल स्कीमा आप एक ही काम करने के लिए एक एक्सएमएल मैपिंग टूल का उपयोग कर सकते हैं।

मैंने नोटिस किया जब मैंने ओपन सोर्स प्रोजेक्ट को परिवर्तित किया कि 2010 को वास्तव में क्लिकऑन परियोजना सेटिंग्स पसंद नहीं आया। यह जुर्माना बदल जाएगा, लेकिन मुझे प्रोजेक्ट खोले जाने के बाद हर बार फिर से कनवर्ट करने के लिए कहा जाएगा। मैं इसे रोकने के लिए प्रोजेक्ट फ़ाइल से क्लिकऑन जानकारी को पूरी तरह से हटा देना समाप्त कर दिया।

संपादित करें: मेरा अनुभव ज्यादातर सी # परियोजना स्कीमा पर आधारित है, जो समय के साथ ज्यादा नहीं बदला है। जैसा कि TheSamFrom1984 ने इंगित किया है, सी ++ स्कीमा में कुछ बड़े बदलाव हुए हैं, जिन्होंने इसे अभी तक MSDN documentation on version 10 में नहीं बनाया है।

+2

दुर्भाग्य से, वीसी 10 और वीसी 9 परियोजना फाइलें पूरी तरह से अलग हैं। – KeatsPeeks

+0

मुझे हाल ही में किसी भी वीसी ++ परियोजना फ़ाइलों के साथ सीधे काम करने का अवसर नहीं मिला है, लेकिन एमएस द्वारा प्रकाशित एक्सएसडी स्कीमा संरचना में कोई बदलाव नहीं दर्शाता है। आप क्या अंतर देख रहे हैं? –

+1

उदाहरण के लिए, vc9 में और vc10 में सूचीबद्ध हैं। एक अंतर केवल एक आम रेखा दिखाता है: पहला वाला। – KeatsPeeks

6

Gallio OSS प्रोजेक्ट VS2010 का उपयोग करके बनाया गया है जबकि अधिकांश योगदानकर्ता अभी भी VS2008 का उपयोग करते हैं। *.csproj फ़ाइलों को *.vs2010.csproj फ़ाइलों के साथ सिंक्रनाइज़ करने के लिए, हम एक साधारण PowerShell स्क्रिप्ट का उपयोग करते हैं जो प्रोजेक्ट फ़ाइलों की प्रत्येक जोड़ी के विरुद्ध WinMerge चलाता है। कुछ भी जटिल नहीं है, लेकिन बहुत आसान है।

आप Google Code पर स्क्रिप्ट डाउनलोड कर सकते हैं। इसे चलाने के लिए, बस निम्न आदेश टाइप करें:

@echo off 
powershell "& './Compare VS2010 Projects.ps1' -sync %*" 

मुझे आशा है कि इससे मदद मिलती है।

+0

सी # में मदद करेगा, लेकिन सी ++ प्रोजेक्ट फ़ाइलों को विलय नहीं किया जा सकता है क्योंकि लेआउट VC++ 2008 से VC++ 2010 तक पूरी तरह से अलग है। हालांकि अच्छा विचार है। – KeatsPeeks

+0

एमएमएच ... मैंने नहीं देखा था कि आप वीसी ++ परियोजनाओं के बारे में बात करते हैं, न कि सी # परियोजनाएं। तो मुझे नहीं पता कि मेरा समाधान वास्तव में आपके परिदृश्य में लागू है या नहीं। –

+0

मुझे लगता है कि यह सबसे अच्छा विचार है। अब मेरा प्रश्न वीसी 9 और वीसी 10 प्रोजेक्ट फाइलों के बीच 'मैं कैसे विलय कर सकता हूं' को कम कर दिया गया है। मैं इसे अपने आप एक उपकरण के साथ कर सकता हूं। – KeatsPeeks

2

मेरा मानना ​​है कि वीएस -2010 प्रोजेक्ट फ़ाइल को वीएस -2010 में माइग्रेट करने के लिए एक कमांड लाइन विकल्प है। तो एक विकल्प केवल वीएस -2008 को बनाए रखना होगा, और वीएस -2010 परियोजनाओं को पुन: उत्पन्न करना होगा।कमियां

  • नहीं VS2010 विशेष परियोजना के विकल्प
  • VS2010 परियोजना में कोई भी परिवर्तन में प्रवेश करने में सक्षम होने के ओवरराइट किया जाएगा और नहीं वापस VS20008 के लिए विलय कर रहे हैं।
+0

मैंने इसके बारे में सोचा, लेकिन मुझे 2010-> 2008 के साथ-साथ – KeatsPeeks

1

विजुअल स्टूडियो 2010 बहु लक्ष्यीकरण जो आप VS2010 का उपयोग कर विकसित करने और V9 करने के लिए मंच उपकरण downtarget ताकि आप नवीनतम उपकरणों का उपयोग कर सकते हैं एक बड़ी परियोजना को बनाए रखने के लिए अनुमति देगा का समर्थन करता है। ऐसा क्यों न करें?

यह VS2010 और VS2008 सी के लिए के साथ आता है ++ बॉक्स से बाहर, यहाँ settingup VS2005 toolchain

http://weblogs.asp.net/israelio/archive/2009/10/20/enable-vs-2010-multi-targeting-also-for-vs2005-c.aspx

+0

करना है, मुझे विश्वास है कि विचार इतना नहीं है कि स्रोत फ़ाइलों को संकलित करने के लिए एक अलग कंपाइलर संस्करण का उपयोग किया जा सकता है लेकिन परियोजना पर विभिन्न डेवलपर्स जो भी उपयोग कर सकते हैं उनके पास 2 आईडीई हैं (या पसंद करते हैं)। –

+0

अतीत में आईडीई और कंपाइलर संस्करण को कसकर लिंक किया गया था ताकि वीसी 8 के साथ संकलन किया जा सके, आपको वीएस 2 के 5 की आवश्यकता है, और वीसी 9 के साथ संकलन करने के लिए आपको वीएस 2 के 8 की आवश्यकता है (हमारे पास अब हमारे कार्यालय में यह सही समस्या है)। वीएस -2010 सभी को वीएस -2010 का उपयोग करने और वीसी 9 के बजाय वीसी 9, या वीसी 8 के लिए अभी भी लक्ष्यीकरण करने की अनुमति देगा। मैं जो कह रहा हूं वह हर 2010 को देता है और उन्हें एकाधिक आईडीई का समर्थन करने के बजाय डाउनटेक्चर करने देता है :) –

1

मैं इसी वापस किया था पर कुछ जानकारी है जब 2008 वी.एस. बाहर आया था और हम इसे का मूल्यांकन कर रहे थे जबकि बाकी टीम वीएस 2005 का उपयोग कर रही थी। मैं नई प्रारूप परियोजना फाइलों में से कोई भी काम नहीं करना चाहता था क्योंकि यह बाकी टीम के लिए इसे तोड़ देगा, इसलिए मैंने रूबी में एक छोटी सी लिपि लिखी जिसने अभी खोज की सभी .vcproj फाइलें और उन्हें _2008.vcproj पर बदल दिया गया। मैंने .sln फ़ाइलों के लिए भी ऐसा ही किया, लेकिन में sln फ़ाइलों में संदर्भों की खोज की और इसका नाम बदलकर _2008.vcproj कर दिया गया ताकि यह नई परियोजनाओं का संदर्भ दे सके।

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

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

0

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

+0

फिर से, मुझे नहीं लगता कि आप यह कैसे कर सकते हैं, क्योंकि आप वीसी 9 और वीसी 10 परियोजनाओं के बीच विलय कर सकते हैं – KeatsPeeks

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